集成学习:Bagging、Boosting、Stacking、Blending

集成学习

按大类分也可以分为串行集成方法和并行集成方法。串行模型利用模型之间的依赖性,给错误分类样本一个较大的权重来提升模型的性能。而并行模型主要领用不同模型的差异性,加权平均之后能够较大的降低误差。

Bagging

Bagging是引导聚合的意思。减少一个估计方差的一种方式就是对多个估计进行平均。例如可以将训练集通过多折分为不同的训练集剩下的作为验证集,而最后预测的结果采用多折预测每个模型的平均结果。
Bagging使用装袋采样来获取数据子集训练基础学习器。通常分类任务使用投票的方式集成,而回归任务通过平均的方式集成。

Boosting

Boosting指的是通过算法集合将弱学习器转换为强学习器。boosting的主要原则是训练一系列的弱学习器,例如较小的决策树,训练方式是利用加权的数据,在训练初期给错误分类的数据较大的权重。
对于训练好的弱分类器,如果是分类任务按照权重进行投票,而对于回归任务进行加权,然后再进行预测。boosting和bagging的区别在于是对加权后的数据利用弱分类器依次进行训练。

Stacking

将训练好的所有基模型对训练基进行预测,通常作为不同模型模型融合的方法。将差异性的模型通过对训练集的预测结果作为特征,然后训练出最终的结果。

Blending

将训练数据进行划分,划分之后的训练数据一部分训练基模型,一部分经模型预测后作为新的特征训练元模型。测试数据同样经过基模型预测,形成新的测试数据。最后,元模型对新的测试数据进行预测。
Blending与Stacking大致相同,只是Blending的主要区别在于训练集不是通过K-Fold的CV策略来获得预测值从而生成第二阶段模型的特征,而是建立一个Holdout集,例如10%的训练数据,第二阶段的stacker模型就基于第一阶段模型对这10%训练数据的预测值进行拟合。说白了,就是把Stacking流程中的K-Fold CV 改成 HoldOut CV。

总结

bagging: 随机森林
boosting: AdaBoost, GBDT, XGBoost,LightGBM, CatBoost

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