机器学习项目流程清单 前端
这份列表可让你学习到如何部署本身的机器学习项目。总共八个步骤: 算法
明确问题是进行机器学习的第一步。机器学习的训练过程一般都是一件很是耗时的事情,胡乱尝试时间成不是很是高的。 后端
这里要先将问题抽象成数学问题,指的是咱们明确咱们能够得到什么样的数据,目标是一个分类仍是回归或者是聚类的问题,若是都不是的话,划归为其中的某类问题。 数组
数据决定了机器学习结果的上限,而算法只是尽量逼近这个上限。 机器学习
数据要有表明性,不然必然会过拟合。 分布式
并且对于分类问题,数据偏斜不能过于严重,不一样类别的数据数量不要有数个数量级的差距。 函数
并且还要对数据的量级有一个评估,多少个样本,多少个特征,能够估算出其对内存的消耗程度,判断训练过程当中内存是否可以放得下。若是放不下就得考虑改进算法或者使用一些降维的技巧了。若是数据量实在太大,那就要考虑分布式了。 工具
良好的数据要可以提取出良好的特征才能真正发挥效力。 性能
特征预处理、数据清洗是很关键的步骤,每每可以使得算法的效果和性能获得显著提升。归一化、离散化、因子化、缺失值处理、去除共线性等,数据挖掘过程当中不少时间就花在它们上面。这些工做简单可复制,收益稳定可预期,是机器学习的基础必备步骤。 学习
筛选出显著特征、摒弃非显著特征,须要机器学习工程师反复理解业务。这对不少结果有决定性的影响。特征选择好了,很是简单的算法也能得出良好、稳定的结果。这须要运用特征有效性分析的相关技术,如相关系数、卡方检验、平均互信息、条件熵、后验几率、逻辑回归权重等方法。
1)删除对任务无用的属性
注意:
在数据副本上进行处理(保持原始数据集的完整)
对全部数据转换的函数编写代码,缘由有五:
能够在下次获取新数据集时轻松处理数据
能够在将来的项目中应用这些转换
对测试集进行预处理
在解决方案生效后清理并准备新的数据实例
轻松地将预处理选择做为超参数来处理
直到这一步才用到咱们上面说的算法进行训练。如今不少算法都可以封装成黑盒供人使用。可是真正考验水平的是调整这些算法的(超)参数,使得结果变得更加优良。这须要咱们对算法的原理有深刻的理解。理解越深刻,就越能发现问题的症结,提出良好的调优方案。
如何肯定模型调优的方向与思路呢?这就须要对模型进行诊断的技术。
过拟合、欠拟合 判断是模型诊断中相当重要的一步。常见的方法如交叉验证,绘制学习曲线等。过拟合的基本调优思路是增长数据量,下降模型复杂度。欠拟合的基本调优思路是提升特征数量和质量,增长模型复杂度。
偏差分析 也是机器学习相当重要的步骤。经过观察偏差样本,全面分析偏差产生偏差的缘由:是参数的问题仍是算法选择的问题,是特征的问题仍是数据自己的问题……
诊断后的模型须要进行调优,调优后的新模型须要从新进行诊断,这是一个反复迭代不断逼近的过程,须要不断地尝试, 进而达到最优状态。
通常来讲,模型融合后都能使得效果有必定提高。并且效果很好。
工程上,主要提高算法准确度的方法是分别在模型的前端(特征清洗和预处理,不一样的采样模式)与后端(模型融合)上下功夫。由于他们比较标准可复制,效果比较稳定。而直接调参的工做不会不少,毕竟大量数据训练起来太慢了,并且效果难以保证。
这一部份内容主要跟工程实现的相关性比较大。工程上是结果导向,模型在线上运行的效果直接决定模型的成败。 不单纯包括其准确程度、偏差等状况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受。
这些工做流程主要是工程实践上总结出的一些经验。并非每一个项目都包含完整的一个流程。这里的部分只是一个指导性的说明,只有你们本身多实践,多积累项目经验,才会有本身更深入的认识。