bagging与boosting算法的总结

******************原文    https://blog.csdn.net/qq_36523839/article/details/82490802   *******************

一   偏差与方差

偏差是指算法的期望预测与真实之间的偏差程度,反映了模型本身拟合能力

方差是指同等大小的训练集的变动导致学习性能的变化,刻画了数据扰动所导致的影响。

当模型越复杂时,拟合能力一般家就会越好,模型的偏差就越好,但此时如果换一组数据可能模型的变化就会很大,即模型的方差很大,所以复杂的模型容易过拟合;

当模型简单的时候,即使换一组数据,得出的学习器分类效果与之前分类器的效果的差别也不是很大,即模型的方差很小,但由于模型很简单,导致模型的偏差很大,也就是和真实值的差别很大。

对于bagging而言,由于我们并行的训练很多的分类器的目的就是为了减低这个方差,因为采用了相互独立的基分类器的数量多,h的值就靠近

对于boosing而言,每一步我们都会在上一轮的基础上更加的拟合原数据,可以保证偏差。收益对于每个基分类器来说,问题就是如何 选择方差更小的分类器。

boosting从优化的角度来看,forward-stagewise这种贪心法去最小化损失函数,由于采取的是串行优化的策略,各子模型之间是强相关的,由于子模型之和并不能显著降低方差,主要是减低偏差来提升预测精确。

 

样本选择上来说,bagging采取的是随机有返回的采样,boosting的每一轮训练的样本是固定的,无放回的采样

样本权重上来说,bagging采取的是均匀采样,每个样本的权重都是一样的,boosting根据错误率调整样本的权重,错误率越大的样本权重就会变大

预测函数上来说,bagging预测函数的子模型的权重相同,boosting的误差越小的子模型在最终结果投票的权重就越大

并行计算上来说,bagging的各个预测函数可以并行计算,boosting的各个预测函数必须是串行执行。

 

将决策树与以上框架组合成新的算法

  • Bagging + 决策树 = 随机森林
  • AdaBoost + 决策树 = 提升树
  • gradient + 决策树 = GDBT

常用的决策树有  id3  c4.5   cart三种。

 

机器学习中的集成学习有两个重要的策略 即bagging和boosting

bagging算法

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

boosting算法

通过迭代构建一系列的分类器,每次分类都将上一次分错的数据权重提高一点再进行下一个分类器分类。这样最终得到的分类器在测试数据与训练数据上都可以得到比较好的效果。代表是adaboost  gbdt  xgboost

调参的目标   偏差bias和方差variance

bagging和boosting的差别  为什么随机森林的树的深度往往大于gbdt的树的深度。这里就牵扯到两个基本的概念---偏差和方差。

偏差是指算法的期望预测与真实值之间的偏差程度。反映了模型本身的拟合能力。

方差是指同等大小的训练集的变动导致学习性能的变化,刻画了数据扰动所导致的影响。

当模型越复杂,拟合能力就越好,模型与真实值之间的偏离程度就越低,也就是偏差低。但此时如果换一组数据可能模型的变化就很大,及模型不稳定,导致的方差(衡量模型的稳定程度)就很大。复杂的模型容易造成拟合。当模型简单时,即换一组数据,分类器得出的效果与之前的分类器都大差不多,都是很差。即模型稳定在很烂的效果,偏差很大,方差很小。

bagging算法来说,我们并行训练得多个分类器的目标就是减低各个分类器的稳定性。因为采用了相互独立的基分类器的数量多了。所以每个基分类器的目标就是如何减低稳定波动性,即减低方差带来的不稳定性。所以我们会把每个基分类器做的稍微复杂一点,即加深了树的深度。

boosting算法来说,每一轮我们都会在上一轮的基础上更加的拟合原数据,所以可以保证稳定性不会太大的问题,即保证方差较小。主要来减低方差来,也就是真值与预测值之间的偏离程度。所以选择深度较浅的决策树。

posted @ 2021-10-13 01:09  大大的海棠湾  阅读(327)  评论(0)    收藏  举报