AdaBoost算法详解

AdaBoost是集成学习Boosting思想的代表,目前对AdaBoost的解释有两种,下面对这两种解释分别进行说明。

解释一

adaboost算法的核心思想是:对于所有的样本我们先初始化一个权重,在算法的一开始,每个样本的权重是一样的,即每个样本被选到的概率相同。然后我们选择一个特征,只用这一个特征进行分类,得到一个弱分类器(通常,这个弱分类器的效果会比较差,会有很多的样本被识别错误)。接下来,我们对样本的权重进行重新分配,对于那些被识别错误的样本,我们给它更高的权重,对于那些识别正确的样本,我们给与更低的权重。然后在此基础上,我们再选择另外的一个特征(这个特征应该对那些之前被识别错误的样本有较好区分作用),得到一个新的弱分类器,然后再对样本进行分类,如此循环往复。最后,我们对所有的弱分类器进行加权平均,得到最终的分类器G(x)。我们可以发现,随着弱分类器的增加,Adaboost最终分类器G(x)在训练集上的错误率会越来越小。
关于AdaBoost算法,在统计学习方法一书中写的十分清楚,这里附上李航老师的解读。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解释二

AdaBoost算法还有另一个解释,即可以认为AdaBoost算法是模型为加法模型、损失函数为指数函数、学习算法为前向分步算法时的二类分类学习方法。这种解释虽没有第一种通俗易懂,但了解这种思想对后面学习提升树算法、BGDT算法等帮助很大。

加法模型

在这里插入图片描述
显然,AdaBoost的模型在这里插入图片描述
是一个加法模型。

损失函数

在给定训练数据及损失函数L(y,f(x))的条件下,学习加法模型f(x)成为使损失函数极小化的问题。
在这里插入图片描述
按照通常的方法,我们可以用梯度下降法来解决这个问题,但是使用梯度下降法在这里会非常复杂。我们可以使用前向分步算法求解这一优化问题。在第一种解释中我们并没有使用明确的损失函数,但其实,我们使用了指数损失函数。这一点是可以通过数学证明出来的。具体证明这里就不展开了。

前向分步算法

前向分步算法的核心思想是,因为学习的是加法模型,如果能够从前向后,每一步只学习一个基函数及其系数,逐步逼近优化目标函数式,那么就可以简化优化的复杂度,具体地,每步只需要优化如下损失函数:
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 37
    收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:终极编程指南 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

bugmaker.

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值