机器学习大致流程
2019-08-25
1.机器学习分类
机器学习主要分3大类,分别是:监督学习,强化学习,无监督学习,其中主要的区别如下所示。
1.1 监督学习
训练数据的标签(即样本的输出)已知,通过训练数据的标签作为反馈,对模型训练的学习方法称为监督学习;常见的子类有分类和回归两项;
1.2 强化学习
强化学习的训练数据没有明确的标签,但其拥有反馈信号,类似于自动控制理论里的闭环反馈;通常这个反馈信号是由开发者定义的一个函数,由这个反馈函数产生对当前系统的评价,再通过这个反馈信号对系统进行训练;
1.3 无监督系统
无监督系统的训练数据即没有明确的标签,也没有反馈函数,该系统的功能是在没有标签和反馈的情况下提取有效信息来探索数据的整体结构,常见子类有聚类和降维;
2.机器学习系统蓝图
机器学习的整个系统可以分为五大步:1)数据获取,2)数据预处理,3)模型训练,4)模型验证,5)模型使用。
2.1 数据获取
很重要,是机器学习的先决条件,关乎到算法训练后的性能。
2.2 数据预处理
主要目的是提高机器学习算法的性能,具体有:1)在尽量不影响算法精度的前提下减小训练的数据量,加快算法的训练时间,2)通过数据处理提高算法的精度;
数据预处理技术有很多种,主要有下面几个:
1)数据清洗:
2)数据填充:
3)数据格式转换:
4)特征抽取及缩放:由于不同特征之间采取不同的量纲,导致可能不同的特征数据之间量级相差很大,数值较小的数据被数值大的数据淹没,从而算法性能不佳;特征抽取及缩放是通过算法将不同特征的数据映射到[0,1]之间,或使其满足方差为1,均值为0的标准正态分布,从而提高算法性能;
5)特征选择:
6)降维:在数据已选择的特征中很可能会有部分特征之间存在较强的耦合性,通过降维可以减小数据之间的耦合行,降低数据的储存空间,加快算法的训练以及运行速度;
7)抽样:为了保证算法的一致性,我们不仅要求算法在训练数据上有效,同时也要很好的应用于新数据,那么测试数据就必不可少;通过合理的分配训练数据和测试数据(有时需要交叉验证数据)也时保证算法有效的一个手段;
8)数据标准化等等。
2.2 模型训练
模型训练是机器学习的核心步骤,关乎着整个算法的效果;模型训练中也有很多技术,常见的有:
1)模型选择(很重要):不同的模型适合不同的业务场景,选择合适的模型可以事半功倍;
2)目标函数:用于评估算法性能的函数;
3)优化算法:为达到目标函数要求而使用的方法即优化算法,常见的是”梯度下降法“;
4)训练停止条件设定:为防止训练过程无限制的运行而设定的终止训练条件,可用迭代次数和目标函数阈值来组合为停止训练的条件;
5)交叉验证:一种通过将训练集划分为”训练集“+”验证集“来降低模型过拟合的手段,简单有效;一半用于超参调优过程中的模型性能评估,隔离测试集,防止过拟合。
6)超参优化:超参并非模型的参数,一般用于训练过程中;比如正则化的系数,学习率,迭代次数等等,合适的超参可以降低模型的过拟合,加速训练速度等;
7)······
2.3模型验证
使用测试集来评估模型的性能。
模型性能指标有很多,比如在分类模型中常用的有错误率,精准率,召回率,F1指标,ROC等等。
2.4 模型使用
即使用训练好的模型对新的数据进行输出预测。
以上即一般的机器学习算法的大致流程,具体每个过程中都涉及到很多技术,在以后的文章里一点点的开始补充。