1 集成学习
1.1 集成学习的概念
• 集成学习是将多种模型结合在一起用来提升训练结果的一种训练的方式。
• 注意:集成学习不是某种具体的训练方式或者算法,而是一种训练的思路。
• 具体来说,即结合数个“好而不同”的机器学习技术,形成一个预 测模型,以此来降方差(bagging),减偏差(boosting),提升 预测准确性(stacking)。
1.2 集成学习的分类
集成学习的模型可以分为4类:
• Bagging模型 Boosting模型
• stacking模型 Blending模型
1.3 Bagging模型
• 技术路线:随机抽取(有放回)数据集里的样本,训练一个学习 器,重复抽取M次,训练得到M个基学习器;
• 本质:所有基础模型都一致对待,每个基础模型手里都只有一票。 然后使用民主投票的方式得到最终的结果。因此,大部分情况下, 经过 bagging 得到的结果方差更小。
• 类别:并行集成学习
• 典型模型:随机森林
1.4 Boosting模型
• 技术路线:改变训练数据的权值或概率分布,通过提高那些在前一轮 被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分 类器对误分的数据有较好的效果。 通过加权多数表决(分类任务)或加权求和和(回归任务)来产生最 终预测。
• 本质:对基础模型不是一致对待的,而是经过不停的考验和筛选来挑 选出「精英」,然后给精英更多的投票权,表现不好的基础模型则给 较少的投票权,然后综合所有人的投票得到最终结果。因此,大部分 情况下,经过 boosting 得到的结果偏差(bias)更小。
• 类别:串行集成学习
• 典型模型:XGBoost、GBDT
1.5 Bagging、Boosting间的区别
• 样本选择:(1)Bagging:训练集是在原始集中有放回选取的,从原始集中选出的 各轮训练集之间是独立的。(2)Boosting:每一轮的训练集不变,只是训练集中每 个样例在分类器中的权重发生变化,而权值是根据上一轮的分类结果进行调整。
• 样例权重:(1)Bagging:使用均匀取样,每个样例的权重相等。(2)Boosting: 根据错误率不断调整样例的权重,偏差越大则权重越大。
• 预测函数:(1)Bagging:所有预测函数的权重相等。(2)Boosting:每个弱分类 器都有相应的权重,对于分类误差小的分类器会有更大的权重。
• 并行计算:Bagging:各个预测函数可以并行生成(2)Boosting:各个预测函数只能顺 序生成,因为后一个模型参数需要前一轮模型的结果。
1.6 Stacking模型
• Stack的中文翻译为“堆”,“叠”,就是把多个结果堆叠起来形成一个最终的结果
• 主要思想:
• 1.对于训练集,先用多个模型对其进行训练,模型训练好后,让模型对训练集和测试集都进行标签的预测(没错, 训练集虽然有标签,但是也要进行预测,后面会用到);
• 2.然后将多个模型对训练集的预测值train_pre和测试集的预测值test_pre分别保存起来;
• 3.最后将多个模型的训练集的预测值作为新的特征和训练集的真实标签train_true一起输入第二层的模型中进行训 练(这里多个模型对训练集的预测值是作为特征,真实标签train_true是作为标签label),然后让第二层训练好的模型 再对之前多个测试集的预测值(同样,多个模型对测试集的预测值也是作为特征输入模型,但是和训练集不同的是 没有真实标签,我们要做的就是预测标签label)进行预测得最终结果。
• 总结来说:stacking就是将多个模型对训练集和测试集的预测结果分别合并起来作为新的训练集和测试集,然后放 到另外一个模型中进行训练,然后对测试集进行预测。还是很好理解的。
Stacking
• Stacking的优缺点及改进方式:
• 优点:stacking的方法可以提高预测的准确度,一般情况(上面我 举的例子)stacking是采用两层模型,如果想搞得更加复杂也是可 以的,可以多层模型都可以,那样就有点像神经网络了!
• 缺点:stacking是容易过拟合训练集的,当遇到测试集和训练集 数据分布不太一致的时候泛化能力不够强
1.7 Blending模型
Blending
• Blending的主要思想:和Stacking的区别在于第一层模型训练的时候,是选 取了训练集的70%的数据进行训练,然后对训练集剩下的30%的数据进行预测 (这里70%和30%可根据个人意愿选择比例,只要将训练集分为合适的两部分 就行了),然后就将对30%训练集的预测结果作为第二层模型训练的输入特征, 后面都和Stacking是一样的。(blending和stacking的区别:stacking是对全部 训练集进行预测,得到全部训练集的预测结果;而blending是将训练集划分 为两部分,一部分用于模型训练,一部分用于预测结果)
1.8 Stacking和Blending的对比
• Stacking和Blending的对比:
• 实际应用的效果上面都差不多,只不过blending两层模型训练数据不同,可 以避免信息泄露问题。