bagging、stacking、boosting、blending四种集成方法的分析与对比

bagging:

从训练集里抽取n个子集训练n个base model,如果任务是分类的话,就采取voting(投票)的方法,如果任务是回归,就取这n个base model的均值。抽取子集时采用自助采样方法,即有放回采样,每个子集里可能有相同的样本。base model 一般都要求是相同的模型,如随机森林(RF)就是以决策树为base model,利用bagging的思想训练出来的,每个base model都是决策树。

boosting:

一种串行地用弱学习器集成强学习器的思想。先用整个训练集训练出基学习器1(这时每个样本所占的权重是一样的),根据基学习器1的预测表现调整训练样本的权重,对那些预测错的寻来你样本赋予更高的权重,然后再一次训练模型得到基学习器2,再一次给训练错误的样本赋予较大的权重,就这样重复下去,直到预测误差达到我们设置的阈值。集成时,将各个基学习器按照不同权重进行组合,表现好的基学习器赋予比较大的权重。
这里每次训练的弱学习器一般也要求是同一种模型,比如GBDT所用到的思想就是boosting,其基学习器是cart树。

stacking:

与bagging、boosting不同,stacking的基学习器一般是多个不同的模型,对于同一个训练集,利用不同基学习器(一般叫做初级学习器)进行训练,将基学习器预测的结果作为新的输入,输入到次级学习器进行训练,最后得到最终结果。这里stacking从初级学习器到次级学习器共有两层。当然stacking可以有多层,可以更近一步使用多个次级学习器,将次级学习器预测的结果作为输入,输入到再下一级学习器中,不过一般使用两层就可以了,层数多了容易导致过拟合。

blending:

blending和stacking比较相似,可以将多个不同模型进行融合, blending的基学习器一般也是不同的。但在训练时,stacking每个基学习器使用全部训练数据进行训练,blending的各个基学习器使用训练集不相交的子集进行训练,对训练数据利用少了。在融合时,stacking是将基学习器的预测结果输入到下级学习器,属于非线性融合,blending是将不同基分类器按照权重进行线性融合。
————————————————
版权声明:本文为CSDN博主「鸡汤本汤」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/YangTinTin/article/details/102594671

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值