Bagging 和 Boosting理解、区别与联系

Bagging 和 Boosting都属于集成学习(ensemble learning)方法,即通过构建并结合多个学习器来完成学习任务。例如对于分类问题,我们可以学习多个弱分类器,然后根据一定的规则对各个弱分类器的结果进行整合,得到最终的分类结果。

1. Bagging

    Bagging是指采用Bootstrap(有放回的均匀抽样)的方式从训练数据中抽取部分数据训练多个分类器,每个分类器的权重是一致的,然后通过投票的方式取票数最高的分类结果最为最终结果。

    Bagging同样可以处理回归(regression)问题,只需将投票的方式改为求均值,即将各个弱分类器的结果的平均值作为最终结果。

                                             

2.Boosting

    Boosting是一族可将弱学习器提升为强学习器的算法。其工作机制为:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。

                                             

3.Bagging 与 Boosting的区别

(1)训练样本

Bagging:通过Booststrap sampling(有放回的均匀抽样)的方式从训练集中出去数据训练各个弱分类器。

注:Bootstrap sampling方法:每当选中一个元组,这个元组同样也可能再次被选中并再次添加到训练集中。

Boosting:各个弱分类器的训练集不是独立的,每一个弱分类器的训练集都是其上一个弱分类器的学习结果,根据错误率进行取样(给予训练样本不同的权值)。

(2)分类器

Bagging:每个分类器都赋予相同的权重。

Boosting:每个分类器的权重是不同的,分类误差小的分类器将获得更大的权重。

(3)分类器的获取方式

Bagging:每个分类器可以并行生成。

Boosting:每个分类器只能依赖其上一个分类器的结果顺序生成。

(4)方差-偏差

从方差-偏差分解的角度看,Boosting 和 Bagging的主要区别如下

Bagging 主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显。

Boosting 主要关注降低偏差,因此Boosting能在基于泛化性能相当弱的学习器上构建出很强的集成。

参考:《机器学习》周志华

          《機器學習: Ensemble learning之Bagging、Boosting和AdaBoost》Tommy huang

猜你喜欢

转载自blog.csdn.net/qq_32863339/article/details/86288260