AdaBoost算法详解

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

解释一

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

解释二

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

加法模型

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

损失函数

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

前向分步算法

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

  • 8
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值