简要说说一个完整机器学习项目的流程?
- 抽象成数学问题(确定是一个分类问题、回归问题还是聚类问题,明确可以获得什么样的数据)
- 获取数据(数据要具有代表性,对数据的量级也要有一个评估,多少样本,多少特征,对内存的消耗,考虑内存是否能放得下,如果放不下考虑降维或者改进算法,如果数据量太大,考虑分布式)
- 特征预处理和特征选择(数据清洗,归一化、缺失值处理、去除共线性等,另外筛选出显著特征、反复理解业务,有时候数据特征选择的好,依靠简单的算法也能得出良好稳定的结果,需要进行特征有效性分析,如相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重等方法)
- 训练模型与调优(现在很多算法都已经封装成黑箱供人使用,正则考察的是调参的技术,需要对算法额原理深入理解,能发现问题的症结,来提出良好的调优方案)
- 模型诊断(确定调优的方向,如欠拟合 过拟合这种情况,一般过拟合是增加数据量和降低模型复杂度的思路,欠拟合是增加特征,增加模型复杂度)
- 模型融合(一般提升模型主要在前期的数据清洗和预处理部分,以及后面的模型融合下功夫,有时候会通过在已有预训练模型上进行再融合和调参节省时间,并能取得不错的效果)
- 上线运行(模型在线上运行效果直接决定模型的成败,运行的速度、资源消耗成都、稳定性等是否可以接受)