梯度提升树 (GBM) 和 Adaboost 之间差异的直观解释

机器算法验证 助推 adaboost
2022-01-30 07:10:49

我试图了解 GBM 和 Adaboost 之间的区别。

这些是我到目前为止所理解的:

  • 两种提升算法都可以从先前模型的错误中学习,最后对模型进行加权求和。
  • GBM 和 Adaboost 非常相似,除了它们的损失函数。

但是我仍然很难理解它们之间的差异。有人可以给我直观的解释吗?

2个回答

我发现这个介绍提供了一些直观的解释:

  • 在 Gradient Boosting 中,(现有弱学习器的)“缺点”由梯度确定。
  • 在 AdaBoost 中,“缺点”由高权重数据点识别。

通过指数损失函数,AdaBoost 为之前步骤中拟合较差的样本赋予更多权重。今天,AdaBoost 在损失函数方面被认为是 Gradient Boosting 的一个特例。从历史上看,它先于梯度提升,后来被推广到,如简介中提供的历史所示:

  1. 发明 AdaBoost,第一个成功的提升算法 [Freund et al., 1996, Freund and Schapire, 1997]
  2. 将 AdaBoost 公式化为具有特殊损失函数的梯度下降 [Breiman et al., 1998, Breiman, 1999]
  3. 将 AdaBoost 推广到梯度提升以处理各种损失函数 [Friedman et al., 2000, Friedman, 2001]

AdaBoost算法的直观解释

让我以@Randel 的出色回答为基础,并举例说明以下几点


  • 在 AdaBoost 中,“缺点”由高权重数据点识别

AdaBoost 回顾

为弱分类器序列,我们的目标是构建以下内容:Gm(x) m=1,2,...,M

G(x)=sign(α1G1(x)+α2G2(x)+...αMGM(x))=sign(m=1MαmGm(x))

  • 最终预测是所有分类器通过加权多数投票的预测的组合

  • 系数由提升算法计算,并加权每个相应的贡献。效果是对序列中更准确的分类器给予更高的影响。αmGm(x)

  • 在每个提升步骤中,通过将权重应用于每个训练观察值来修改数据。步,之前被错误分类的观测值的权重增加了w1,w2,...,wNm

  • 请注意,在第一步中,权重被统一初始化m=1wi=1/N

玩具示例上的 AdaBoost

考虑我应用 AdaBoost 的玩具数据集,设置如下:迭代次数,弱分类器 = 深度为 1 的决策树,具有 2 个叶节点。红色和蓝色数据点之间的边界显然是非线性的,但算法做得很好。M=10

在此处输入图像描述

可视化弱学习者的序列和样本权重

前 6 个弱学习如下所示。散点在每次迭代时根据它们各自的样本权重进行缩放m=1,2,...,6

在此处输入图像描述

第一次迭代:

  • 决策边界非常简单(线性),因为这些是弱学习器
  • 正如预期的那样,所有点的大小都相同
  • 6 个蓝点在红色区域,分类错误

第二次迭代:

  • 线性决策边界发​​生了变化
  • 以前错误分类的蓝点现在更大(更大的样本权重)并影响了决策边界
  • 9 个蓝点现在被错误分类

10次​​迭代后的最终结果

所有分类器在不同的位置都有一个线性决策边界。前 6 次迭代的结果系数为:αm

1.041, 0.875, 0.837, 0.781, 1.04, 0.938...

正如预期的那样,第一次迭代的系数最大,因为它是错误分类最少的一次。

下一步

梯度提升的直观解释 - 待完成

来源和进一步阅读: