机器学习流程
一、抽象为数学问题
二、准备数据集
- EDA
- 收集的数据去重复、标准化、错误修正等
- 保存成数据库文件或者csv格式文件,为下一步数据的加载做准备
EDA
- 通过数据可视化了解数据,分析数据,搞清楚数据的分布
- 确定因变量和自变量的相关性,确定相关系数。
- 三大方法:
- 描述性统计:平均数、中位数、模式等
- 数据可视化:热力图(辨别特征内部相关性)、箱形图(可视化群体差异)、散点图(可视化特征之间的相关性)、主成分分析(可视化数据集中呈现的聚类分布)
- 数据整形:对数据进行透视、分组、过滤等
三、数据预处理
- 特征选择
- 数据清洗、数据转换、数据规范
特征选择
- 对确定的特征进行筛选,筛选可以手工选择或者模型选择
- 特征选择方法最全总结!_Datawhale的博客-CSDN博客
- 然后对变量进行命名以便更好的标记。命名文件要存下来,在预测阶段的时候会用到。
数据清洗、数据转换、数据规范
- 对数据进行各种检查和校正过程,以纠正缺失值、拼写错误、使数值正常化/标准化以使其具有可比性、转换数据(如对数转换)等问题。
向量化
- 向量化是对特征提取结果的再加工,目的是增强特征的表示能力,防止模型过于复杂和学习困难,比如对连续的特征值进行离散化,label值映射成枚举值,用数字进行标识。
- 这一阶段将产生一个很重要的文件:label和枚举值对应关系,在预测阶段的同样会用到
四、data splitting
- training set(80%)+test set(20%)
- training set(60%)+test set(20%)+ validation set(20%)
五、modeling
- model selection
- hyperparameter optimization
最佳方法是测试各种不同的算法,然后通过交叉验证选择最好的一个。
一般准则:如果训练集很小,那么高偏差/低方差分类器(如朴素贝叶斯分类器)要优于低偏差/高方差分类器(如k近邻分类器),因为后者容易过拟合。然而,随着训练集的增大,低偏差/高方差分类器将开始胜出(它们具有较低的渐近误差),因为高偏差分类器不足以提供准确的模型。
六、模型诊断
如何确定模型调优的方向与思路呢?这就需要对模型进行诊断的技术。
(1)过拟合、欠拟合判断,常见的方法如交叉验证,绘制学习曲线等。
- 过拟合的基本调优思路是增加数据量,降低模型复杂度
- 欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度
(2)误差分析:是参数的问题还是算法选择的问题,是特征的问题还是数据本身的问题……
诊断后的模型需要进行调优,调优后的新模型需要重新进行诊断,这是一个反复迭代不断逼近的过程,需要不断地尝试, 进而达到最优状态。
工程上,主要提升算法准确度的方法是分别在模型的前端(特征清洗和预处理,不同的采样模式)与后端(模型融合)上下功夫
七、模型评估
常见的五个方法:混淆矩阵、提升图&洛伦兹图、基尼系数、ks曲线、roc曲线。
混淆矩阵不能作为评估模型的唯一标准,混淆矩阵是算模型其他指标的基础。完成评估后,如果想进一步改善训练,可通过调整模型的参数来实现,然后重复训练和评估的过程。
参考博文:
机器学习:基本流程_玩转测试开发的博客-CSDN博客_机器学习算法流程