Boosting与Bagging及其方差与误差

https://www.zhihu.com/question/26760839?sort=created
https://www.jianshu.com/p/9d7a12270dc4


Bagging:

1)从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)
2)每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
3)对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)

Boosting:

AdaBoosting方式每次使用的是全部的样本,每轮训练改变样本的权重。下一轮训练的目标是找到一个函数f 来拟合上一轮的残差。当残差足够小或者达到设置的最大迭代次数则停止。Boosting会减小在上一轮训练正确的样本的权重,增大错误样本的权重。(对的残差小,错的残差大) 梯度提升的Boosting方式是使用代价函数对上一轮训练出的模型函数f的偏导来拟合残差。


Bagging和Boosting的区别:

1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

4)并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

5)模型选择:
Bagging使用的是同种模型不同数据(可以视为来源相同而且部分重复),有近似相等的bias和variance(事实上,各模型的分布也近似相同,但不独立)
Boosting

6)偏差与方差上:

  1. 减少方差的bagging(样本存在重叠导致分布的差异即方差缩小)
  2. 减少偏差的boosting(每一次迭代都根据上一次迭代的预测结果对样本进行加权,所以随着迭代不断进行,误差会越来越小,所以模型的 bias 会不断降低。)

7)模型上:

boosting框架中的基模型必须为弱模型(偏差高方差低)。bagging中的基模型一定要为强模型(偏差低方差高),否则就会导致整体模型的偏差度低,即准确度低。

  • Stacking可以使用异质的弱学习器,即多个不同的算法训练树(SVM/LR),但是一般bagging 和 boosting都只用一种。

为什么说bagging是减少variance,而boosting是减少bias?

  • Bagging是降低variance的,而Boosting是同时降低variance和bias。

  • 理解1:数学解释

Bagging对样本重采样,所以各模型有近似的bias和variance,训练的样本集相互之间存在关联性。

bagging降低的是第二项(增加了),random forest是同时降低两项(增加了而且减少了)

boosting从优化角度来看,是用forward-stagewise这种贪心法去最小化损失函数。因此boosting是在sequential地最小化损失函数,其bias自然逐步下降。但由于是采取这种sequential、adaptive的策略,各子模型之间是强相关的,于是子模型之和并不能显著降低variance。所以说boosting主要还是靠降低bias来提升预测精度。


  • 理解2:

boosting是把许多弱的分类器组合成一个强的分类器(单独拿出任何一个分类器的效果都很差)。弱的分类器bias高,而强的分类器bias低,所以说boosting起到了降低bias的作用。variance不是boosting的主要考虑因素。

bagging是对许多强(甚至过强)的分类器求平均。在这里,每个单独的分类器的bias都是低的,平均之后bias依然低;而每个单独的分类器都强到可能产生overfitting的程度,也就是variance高,求平均的操作起到的作用就是降低这个variance。


另外一种观点:

bagging随机采样,所以样本不同(个数相同但是内容不同),但是分类器相同(同一个弱学习算法),通过投票机制,组合成强分类器。 但是boosting样本相同(子采样怎么看?),分类器却不同,与的得到的权重线性组合得到强分类器。

你可能感兴趣的:(Boosting与Bagging及其方差与误差)