机器学习预测过程实践
我们经常提到机器学习,那么,如何更好的描述机器学习的过程呢? 谈到机器学习,它不简单但其实也简单。常常的,它必经的环节有特征工程、模型训练和部署预测。在实际的工程实践中,我们往往在解决预测问题前需要评估该问题的可能带来什么样的挑战,之后研究解决该问题存在哪些可行的方法,同时还要评估各种方法能带来的潜在价值和可能引发的成本,最终确定由哪些人以什么样的技术方案来进行模型的训练和预测。
在机器学习中,数据是非常重要的,数据的好坏直接决定了模型的上限。因此,负责数据处理的特征工程阶段在三大环节中的比重最为重要,且处理过程更加的需要细心和耐心。
通常,在特征工程阶段,我们需要做的工作有下面这些:
特征工程 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
EDA | 缺失值处理 | 字符型特征处理 | 标准化 | 相关性检查 | 标准正态分布矫正 | 特征构造 | 降维 | ||||
线性函数归一化 | 零均值归一化 | 混淆矩阵 | 组合特征 | 新建特征 |
有了细致的特征工程结果,下面就可以使用备选的模型进行训练了。在训练阶段,我们从两个方面对结果进行关注:首先是由评价指标得出的损失函数结果图表;其次是分析模型本身性能的混淆矩阵。
模型训练 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
训练前 | 训练后 | ||||||||||
迭代 | 调参 | 采样 | 损失函数 | 模型分析 | |||||||
k-折交叉验证 | ROC | P-R |
在经过对训练结果的分析,和重复的调整参数以改进模型效果的过程之后,我们会得到一个相对满意的模型。此时,我们就可以将训练好的模型实施部署,以便它在真实的场景中解决生活中的问题。在这个阶段,我们更多的则是要考量预计投入成本和期待性能之间的权衡。高质量的硬件设备可以大大的节省时间成本,但是不菲的价格则成为制衡,怎么样才能做到花最少的钱,得到最好的效果呢?不同的业务场景,要求我们给出的方案不尽相同,所以此时,可能需要回头想想最初解决问题的出发点,再来做一个综合的考量。
接下来,我将以Kaggle中房价预测的赛题为例,具体的展示一个完整的预测过程。
PREVIOUSKaggle房价预测实践系列1: 特征工程 EDA
NEXT协同过滤概述