我试图了解 GBM 和 Adaboost 之间的区别。
这些是我到目前为止所理解的:
- 两种提升算法都可以从先前模型的错误中学习,最后对模型进行加权求和。
- GBM 和 Adaboost 非常相似,除了它们的损失函数。
但是我仍然很难理解它们之间的差异。有人可以给我直观的解释吗?
我试图了解 GBM 和 Adaboost 之间的区别。
这些是我到目前为止所理解的:
但是我仍然很难理解它们之间的差异。有人可以给我直观的解释吗?
我发现这个介绍提供了一些直观的解释:
- 在 Gradient Boosting 中,(现有弱学习器的)“缺点”由梯度确定。
- 在 AdaBoost 中,“缺点”由高权重数据点识别。
通过指数损失函数,AdaBoost 为之前步骤中拟合较差的样本赋予更多权重。今天,AdaBoost 在损失函数方面被认为是 Gradient Boosting 的一个特例。从历史上看,它先于梯度提升,后来被推广到,如简介中提供的历史所示:
- 发明 AdaBoost,第一个成功的提升算法 [Freund et al., 1996, Freund and Schapire, 1997]
- 将 AdaBoost 公式化为具有特殊损失函数的梯度下降 [Breiman et al., 1998, Breiman, 1999]
- 将 AdaBoost 推广到梯度提升以处理各种损失函数 [Friedman et al., 2000, Friedman, 2001]
让我以@Randel 的出色回答为基础,并举例说明以下几点
- 在 AdaBoost 中,“缺点”由高权重数据点识别
令为弱分类器序列,我们的目标是构建以下内容:
最终预测是所有分类器通过加权多数投票的预测的组合
系数由提升算法计算,并加权每个相应的贡献。效果是对序列中更准确的分类器给予更高的影响。
在每个提升步骤中,通过将权重应用于每个训练观察值来修改数据。步,之前被错误分类的观测值的权重增加了
请注意,在第一步中,权重被统一初始化
考虑我应用 AdaBoost 的玩具数据集,设置如下:迭代次数,弱分类器 = 深度为 1 的决策树,具有 2 个叶节点。红色和蓝色数据点之间的边界显然是非线性的,但算法做得很好。
前 6 个弱学习如下所示。散点在每次迭代时根据它们各自的样本权重进行缩放
第一次迭代:
第二次迭代:
10次迭代后的最终结果
所有分类器在不同的位置都有一个线性决策边界。前 6 次迭代的结果系数为:
1.041, 0.875, 0.837, 0.781, 1.04, 0.938...
正如预期的那样,第一次迭代的系数最大,因为它是错误分类最少的一次。
梯度提升的直观解释 - 待完成