Bagging和Boosting(偏差与方差)

机器学习中的集成学习有两个重要的策略,即Bagging与Boosting。

Bagging:

    算法构建多个分类器,每个分类器都随机从原样本中做有放回的抽样,利用这些采样后的样本训练该分类器,然后将这些分类器组合起来构成一个更强效果更好的组合分类器,结果一般使用多数投票效果就很好了。其代表算法为随机森林。

Boosting:

    算法通过迭代构建一系列的分类器,每次分类都将上一次分错的数据权重提高一点再进行下一个分类器分类,这样最终得到的分类器在测试数据与训练数据上都可以得到比较好的成绩。其代表算法为AdaBoost、GBDT、XGBoost。

两者的大概意义如上所述,下面说一下这两者其中的一个具体的差别。

偏差(bias)和方差(variance):

    调参的目标:偏差和方差的协调

    (Bagging与Boosting的差别)为什么随机森林的树的深度往往大于GBDT的树的深度?这里可能牵扯到两个概念——偏差、方差,偏差指的是算法的期望预测与真实值之间的偏差程度,反映了模型本身的拟合能力;方差度量了同等大小的训练集的变动导致学习性能的变化,刻画了数据扰动所导致的影响。

    当模型越复杂时,拟合能力就越好,模型的偏差就越好。但此时如果换一组数据可能模型的变化就会很大,即模型方差变大,所以复杂的模型容易造成过拟合;当模型简单的时候,即使换一组数据,得出的学习器分类效果与之前分类器的效果也不会很大,即模型方差很小,但由于模型过于简单,导致偏差会很大。

    也就是说当我们建立模型时,偏差和方差都需要照顾到,一个也不能漏掉。

    对于Bagging算法来说,由于我们并行的训练很多的分类器的目的就是降低这个方差,因为采用了相互独立的基分类器的数量多了,h的值就会靠近。所以对于每个基分类器的目的就是如何降低这个偏差,所以我们会采用深度很深并且不剪枝的决策树。

    而对于Boosting来说,每一步我们都会在上一轮的基础上更加的拟合原数据,所以可以保证偏差,所以对于每个基分类器来说,问题就是如何选择方差更小的分类器,即更简单的弱分类器,所以我们选择深度很浅的决策树。

 

参考文章:https://www.jianshu.com/p/0fe45d4e9542

 

你可能感兴趣的:(数据挖掘,数据挖掘算法)