上文介绍了机器学习是什么。让我们来简单回顾一下,其实机器学习解决的问题是:机器学习模型根据已知数据的输入与输出进行学习,发现已知数据输入与输出的规律并总结下来,进而利用总结的规律对未知数据进行预测。本文接着上文来继续介绍机器学习的基础知识,适合小白入门,大神请跳过。
机器学习的一般过程
1.数据处理
- 数据收集(数据检索、数据挖掘、爬虫)
数据检索和数据挖掘是一种获取数据的方式,主要是通过已有的数据集,比如说一些数据库中去获得我们想要的数据信息,更强调的是已有的数据,比如购物网站会有很多储存的用户数据进行分析。而爬虫则是倾向于从互联网上去找数据,这些数据并非是自己已经获得的。爬虫和前两者的差别在于,爬虫拿到的数据质量是比较低的,因为互联网上的数据信息可能会有一些垃圾数据、缺失关键字段等问题。
- 数据清洗
无论从任何数据集拿到的数据,都有可能不干净,比如存在一些异常字段或者缺失字段,这就需要我们进行清晰的操作,比如对异常值缺失值填充或者删掉。一定要保证在机器学习建模前给其使用干净的数据,才能最大程度的保证机器学习模型的效果和准确度。
- 特征工程
先来解释一下特征的概念,我们日常所接触到的数据,很多都是有行有列的数据,那么我们称一行为一个样本,一列为一个特征,有几列就有几个特征。机器学习模型的建立在经历之前的数据清洗后已经有了相对干净的数据,但这并不意味着这样的数据适合我们的模型,比如有时候可能列数存在不够的情况或者某一列不需要,就可以增加或者删除某列,这就是特征工程的一种形式,对特征进行增删改。这主要还是与机器学习的算法息息相关。
2.机器学习
- 选择模型(算法)
目前已存的机器学习算法很多,但我们要选择最合适的,最能够找到我们数据的输入和输出之间的规律的算法作为我们的模型。
- 训练模型(算法)
确定了算法后,便可以用我们的数据进行训练,在这期间需要不断调整算法模型的参数以保证其适合我们的数据,最大程度发现数据输入和输出之间的规律。
- 评估模型(工具、框架、算法知识)
我们选定了一些算法模型来训练我们的数据,自然要选出那个模型是最适合的,这就需要对机器学习的模型进行评估,这也是在之后的一项重点。
- 测试模型
通过评估确定了合适的模型,便可以用已存数据中为训练过的来对模型进行测试,每个样本都会有预测输出,来比较预测输出和真实输出之间的关系,这就是测试结果。测试结果如果不错的话便可以考虑采用。
3.业务运维
- 应用模型
- 维护模型
业务运维主要是模型构建出来时候如何上线如何运用,这还不是当前的重点,之后会在项目中进行说明和讲解。
机器学习常应用于如下领域
- 数据预测:举个例子,比如某公司进行海底建设多年,公司安置的传感器等装置收集了海水的温度、深度、盐浓度、PH值等,以及在这些指标下对应的海底管道的腐蚀速率,我们需要找的机器学习模型,就是来表达这些参数指标与对应腐蚀速率的关系。因此如果找到合适的模型,将来通过收集到的指标就可以直接预测管道腐蚀速率,就更有利于对管道的选择。这边是数据预测的一种应用。,我们其实需要做的便是竭尽所能寻找一个合适的机器学习模型。
- 股价预测
- 推荐引擎
- 自然语言识别:这种应用常见于商品的推荐系统,比如对用户对商品的评价,让我们的系统模型来判断用户的评价到底是好评还是差评,当然这并不是一件容易的事,并非简单的根据一些褒义词贬义词作为关键词。所用的数据一般是用户的评价对应的标签“好评”或“差评”。
- 语音识别:这里手机的音频便是学习的数据,模型也需要通过学习大量的音频来能够判断音频中的内容,也相当于一个语音转文本的过程。
- 图像识别
- 人脸识别
机器学习模型的典型应用业务场景(三种)
- 回归业务场景:根据已知的输入和输出寻找某种性能最佳的模型,将未知输出的输入代入模型,得到连续的输出。
- 分类业务场景:根据已知的输入和输出寻找某种性能最佳的模型,将未知输出的输入代入模型,得到离散的输出。
要区别以上两个场景其实很简单,比如我们拿到一组公司内部的工资数据,指标有员工的年龄学历和工作经验等指标以及对应的月薪和月薪等级,通过学习这些指标与对应的月薪的关系,来实现判断一个新员工的对应月薪,也就是比如说25岁的有两年经验的硕士,预测月薪为15000元,这样一个具体的数值,那就是回归问题。而如果是把月薪分为三个等级比如说高中低,通过输入指标来预测这个人会拿到一个高水平的还是中等水平或是低水平的工资,这就是分类问题。这本质上也就是预测出连续数据和离散数据的区别,通过输出判断即可。
- 聚类业务场景:根据已知输入的相似程度,将其划分为不同的群落。