集成算法中bagging、boosting和stacking有什么区别?应该怎么选?
关注者
8被浏览
5,747登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏
boosting是提升方法,把弱学习器集成起来提升为一个强学习器,一般采用加性模型,可以简单理解为对数据学习一次后,对残差继续学习,不断学习下去,拟和得就越来越好
bagging是将多个学习器的结果取平均(回归问题)或者取投票数最多的(分类问题),可以简单理解为多次重复实验增加结果可靠性
stacking则可以理解为bagging的升级版,因为取平均或者投票的方法只是一种人为规定(其实比较合理)的方法,而stacking不采用这种人为规定的方式来得到最终结果,而是对这些学习器的在训练集上的预测值配上其真实值再次进行一次有监督学习,得到一个新的称为元学习器,以后就用这个元学习器来聚合生成最后结果,这个元学习器的作用就好比bagging的取平均或者投票
更多细节可以查下周志华西瓜书