Bagging和Boosting

Bagging Boosting

Posted by jiang on November 8, 2018

Boosting

  • 自举汇聚法(bootstrap aggregating),也称为bagging方法,是在从原始数据集选择S次后 得到S个新数据集的一种技术。
  • AdaBoosting方式每次使用的是全部的样本,每轮训练改变样本的权重。下一轮训练的目标是找到一个函数f 来拟合上一轮的残差。当残差足够小或者达到设置的最大迭代次数则停止。Boosting会减小在上一轮训练正确的样本的权重,增大错误样本的权重。(对的残差小,错的残差大)
  • 梯度提升的Boosting方式是使用代价函数对上一轮训练出的模型函数f的偏导来拟合残差。

Bagging

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

区别样本选择:

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

区别样例权重:

  • Bagging:使用均匀取样,每个样例的权重相等 boosting分类的结果是基于所有分类器的加权求和结果的
  • Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。boosting中的分类器权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度

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