Preliminary understanding of bagging and boosting

boosting and bagging这两个概念在统计学习理论中还是挺重要的,两者都采取训练多次的做法,但是还是有一些区别,先说比较简单的bagging。
bagging 也称bootstrap aggregation,它其实就是抽样了很多次,然后每次对抽样训练出一个分类器,那么最后的分类结果是基于这些所有分类器投票的结果。
bagging的具体做法:
1 从样本集中用Bootstrap(有放回)采样选出n个样本。
2对这n个样本建立分类器。
3重复以上两步m次,得到m个分类器。

4给定一个需要分类的数据,分类结果是m个分类器的分类结果票数最多的那个类别。

说到bagging,这里在插入一个概念,random forest,随机森林说白了就是很多课决策树,但是这些决策树建立经过两次的随机:1 样本的随机;2属性的随机。
random forest 具体做法:
1 从样本集中用Bootstrap(有放回)采样选出n个样本
2对于每个分类器,随机选择k个属性对其进行训练。
3重复以上两步m次,得到m个分类器

4给定一个需要分类的数据,分类结果是m个分类器的分类结果票数最多的那个类别。



接下来的就是boosting思想

     同样是训练多次,bagging每次训练的m分类器权重都是相同的,但是boosting不是,它每次会把分类效果差的权重增加,效果好的权重减小。举一个AdaBoost算法的例子,它的做法如下:

Preliminary understanding of bagging and boosting_第1张图片


其中alpha是每个分类器的权重,可以看到这个算法每次会根据每个分类器的错误率来调整其对应的权重,错误率越高,权重越高,另外最后的分类结果是所有加权弱分类器的和。

一般来说,boosting的效果比bagging要好,但是boosting需要更多的时间来训练。

你可能感兴趣的:(Preliminary understanding of bagging and boosting)