You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
# 机器学习项目流程
|
|
|
|
|
|
|
|
当我们拿到一个项目需求想要使用机器学习来实现时,我们往往会按照**理解问题与问题转换、获取数据、数据清洗与预处理、特征工程、模型训练与调优**这`5`个步骤来走。
|
|
|
|
|
|
|
|
### 1.理解实际问题,抽象为机器学习能处理的数学问题
|
|
|
|
|
|
|
|
理解实际业务场景问题是机器学习的第一步。机器学习的特征工程和模型训练通常都是一件非常耗时的过程,胡乱尝试时间成本是非常高的。深入理解要处理的问题,能避免走很多弯路。
|
|
|
|
理解问题,包括明确可以获得什么样的数据,机器学习的目标是一个分类、回归还是聚类。如果都不是的话,要考虑将它们转变为机器学习问题。
|
|
|
|
|
|
|
|
### 2.获取数据
|
|
|
|
|
|
|
|
获取数据包括获取原始数据以及从原始数据中经过特征工程从中提取训练、测试数据。机器学习比赛中原始数据都是直接提供的,但是实际问题需要自己获得原始数据。
|
|
|
|
|
|
|
|
有句名言是:**“数据决定机器学习结果的上限,而算法只是尽可能的逼近这个上限”**,可见数据在机器学习中的作用。总的来说数据要有具有 **“代表性”** ,否则必然会过拟合。对于分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数个数量级的差距。
|
|
|
|
|
|
|
|
### 3.数据清洗与预处理
|
|
|
|
|
|
|
|
**数据预处理、数据清洗是很关键的步骤**,往往能够使得算法的效果和性能得到显著提高。归一化、离散化、因子化、缺失值处理、去除共线性等,数据挖掘过程中很多时间就花在它们上面。这些工作简单可复制,收益稳定可预期,是机器学习的基础必备步骤。
|
|
|
|
|
|
|
|
### 4.特征工程
|
|
|
|
|
|
|
|
特征工程包括从原始数据中**特征构建、特征提取、特征选择**,非常有讲究。深入理解实际业务场景下的问题,丰富的机器学习经验能帮助我们更好的处理特征工程。**特征工程做的好能发挥原始数据的最大效力,往往能够使得算法的效果和性能得到显著的提升,有时能使简单的模型的效果比复杂的模型效果好。**
|
|
|
|
|
|
|
|
**筛选出显著特征、摒弃非显著特征,需要机器学习工程师反复理解业务**。这对很多结果有决定性的影响。特征选择需要运用特征有效性分析的相关技术,如**相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重**等方法。
|
|
|
|
|
|
|
|
### 5.模型训练、诊断与调优
|
|
|
|
|
|
|
|
现在有很多的机器学习算法的工具包,例如`sklearn`,使用非常方便,**真正考验水平的根据对算法的理解调节(超)参数,使模型达到最优**。
|
|
|
|
|
|
|
|
|
|
|
|
**过拟合、欠拟合的模型状态判断是模型诊断中至关重要的一步**。常见的方法如:交叉验证,绘制学习曲线等。过拟合的基本调优思路是增加训练的数据量,降低模型复杂度。欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度。
|
|
|
|
|
|
|
|
诊断后的模型需要进行进一步调优,调优后的新模型需要重新诊断,这是一个反复迭代不断逼近的过程,需要不断的尝试,进而达到最优的状态。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|