参考博客:https://blog.csdn.net/qq_31342997/article/details/88078213
https://blog.csdn.net/u012969412/article/details/76636336
https://blog.csdn.net/maqunfi/article/details/82220115
https://www.jianshu.com/p/fc4de92a9486
一、模型融合的概念
先产生一组“个体学习器 ”,再用某种策略将它们结合起来,加强模型效果。
二、常见模型融合的方法
boosting方法介绍:迭代的训练某个基本模型(base model),每次根据上一轮预测错误得到情况来修改训练样本的权重,比较容易过拟合。
bagging方法介绍:抽取训练集中不同的子集来训练每个基本模型(base model),最后对每个base model进行投票(少数服从多数的思想)。
stacking方法介绍:层次融合的思想,第一轮用多个基本模型(一种多个,或多种)训练,然后对其结果用LR在训练(为了匹配每个基本模型的权重)。
blending方法介绍:层次融合的思想,用不相交的数据。将训练集train数据划分两部分(d1,d2),用对d1训练的模型去预测d2,test。
用上一轮d2的预测值和标签训练新的分类器,然后把test的New Features输入作为最终的预测值。
三、各种模型融合的区别
Bagging,Boosting二者之间的区别
(1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
(2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
(3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
(4)并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
Stacking,Blending二者之间的区别
1.Blending方式和Stacking方式很类似,相比Stacking更简单点,两者区别是:
blending是直接准备好一部分10%留出集只在留出集上继续预测,用不相交的数据训练不同的 Base Model,将它们的输出取(加权)平均。
实现简单,但对训练数据利用少了。
2.blending 的优点是:比stacking简单,不会造成数据穿越(所谓数据创越,就比如训练部分数据时候用了全局的统计特征,导致模型效果过分的好),
generalizers和stackers使用不同的数据,可以随时添加其他模型到blender中。
3.缺点在于:blending只使用了一部分数据集作为留出集进行验证,而stacking使用多折交叉验证,比使用单一留出集更加稳健
4.两个方法都挺好,看偏好了,可以一部分做Blending、一部分做Stacking。
原文:https://www.cnblogs.com/tyh666/p/11666690.html