机器学习是一种从数据生成规则、发现模型,来帮助我们预测、判断、分析、和解决问题的技术。
一个机器学习项目从开始到结束大致分为5步,分别是定义问题、收集数据和预处理、选择算法和确定模型、训练拟合模型、评估并优化模型性能。
定义问题
我们先来看第一步,定义问题。在定义问题这个环节中,我们要剖析业务场景,设定清晰的目标,同时还要明确当前问题属于哪一种机器学习类型。如果不搞清楚这些,我们后面就无法选择模型了。
收集数据和预处理
这一步包含了几个小步骤:
- 收集数据;
- 数据可视化;
- 数据清洗;
- 特征工程;
- 构建特征集和标签集;
- 拆分训练集、验证集和测试集。
选择算法并建立模型
在这一步中,我们需要先根据特征和标签之间的关系,选出一个合适的算法,并找到与之对应的合适的算法包,然后通过调用这个算法包来建立模型。
训练模型
训练模型就是用训练集中的特征变量和已知标签,根据当前样本的损失大小来逐渐拟合函数,确定最优的内部参数,最后完成模型。虽然看起来挺复杂,但这些步骤,我们都通过调用fit方法来完成。
fit方法是机器学习的核心环节,里面封装了很多具体的机器学习核心算法,我们只需要把特征训练数据集和标签训练数据集,同时作为参数传进fit方法就行了。
模型的评估和优化
我们刚才说,梯度下降是在用训练集拟合模型时最小化误差,这时候算法调整的是模型的内部参数。而在验证集或者测试集进行模型效果评估的过程中,我们则是通过最小化误差来实现超参数(模型外部参数)的优化。
对此,机器学习工具包(如scikit-learn)中都会提供常用的工具和指标,对验证集和测试集进行评估,进而计算当前的误差。比如R方或者MSE均方误差指标,就可以用于评估回归分析模型的优劣。
不过呢,在开始评估模型之前,我想请你思考一下:在我们这5个实战步骤里面,并没有“使用模型预测浏览量”这个环节,这是为什么呢?其实这个环节已经包含在第5步“模型性能的评估和优化”之中了,并且是我们在第5步中首先要去实现的。
具体来说,在“模型的评估和优化”这一步中,当我们预测完测试集的浏览量后,我们要再拿这个预测结果去和测试集已有的真值去比较,这样才能够求出模型的性能。而这整个过程也同样是一个循环迭代的过程,我把这个循环过程总结成了下面的图,你可以看看:
如果模型的评估分数不理想,我们就需要回到第3步,调整模型的外部参数,重新训练模型。要是得到的结果依旧不理想,那我们就要考虑选择其他算法,创建全新的模型了。如果很不幸,新模型的效果还是不好的话,我们就得回到第2步,看看是不是数据出了问题。
下面是一个典型的机器学习的实战项目:(35条消息) 机器学习实战——房价预测完整案例(建议收藏慢慢品)_机器学习房价预测_Dream丶Killer的博客-CSDN博客