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

你可能感兴趣的:(机器学习)