Adaboost算法总结

1. Boosting算法基本原理
Boosting算法是一种由原始数据集生成不同弱学习器的迭代算法,然后把这些弱学习器结合起来,根据结合策略生成强学习器。
在这里插入图片描述
如上图,Boosting算法的思路:
(1)样本权重表示样本分布,对特定的样本分布生成一个弱学习器。
(2)根据该弱学习器模型的误差率e更新学习器权重α。
(3)根据上一轮的学习器权重α来更新下一轮的样本权重。
(4)重复步骤(1)(2)(3),结合所有弱学习器模型,根据结合策略生成强学习器。

2. Boosting算法的权重理解
Boosting算法意为可提升算法,可提升方法具体表现在:

1)样本权重更新
例如,我们对癌症病人和健康人作一个定性的分析,癌症误分类成健康人的结果很可能是丧失生命,因此这种误分类情况肯定不能出现的,若我们对该误分类点的权重增加一个极大值,以突出该样本的重要性,分类结果如下图:
在这里插入图片描述
增加误分类样本的权重,使分类器往该误分类样本的正确决策边界方向移动,当权重增加到一定值时,误分类样本实现了正确分类,因为训练样本的权重和是不变的,增加误分类样本权重的同时,也降低了正确分类样本的权重。

2) 学习器的权重分配
Boosting算法通过迭代生成了一系列的学习器,我们给予误差率低的学习器一个高的权重,给予误差率高的学习器一个低的权重,结合弱学习器和对应的权重,生成强学习器。

3. AdaBoost的算法流程
本节主要研究四个问题:
(1)如何计算弱学习器的学习误差;
(2)如何得到弱学习器的权重系数α;
(3)如何更新样本权重D;
(4)使用何种结合策略;
对于二分类问题,输出为{-1,1}。第K轮的弱分类器为

  1. 计算弱分类器的分类误差
    在训练集上的加权误差率为:
    在这里插入图片描述
  2. 弱学习权重系数α的计算
    在这里插入图片描述
    由上式可知,学习器误差率越小,则分类器权重越大。
  3. 下一轮样本的权重更新
    在这里插入图片描述
    4) 结合加权投票策略,构建最终分类器为:
    在这里插入图片描述
    4. AdaBoost算法的训练误差分析
    训练误差为
    在这里插入图片描述
    由上式可知,AdaBoost的训练误差是以指数速率下降的,即AdaBoost算法随着迭代次数的增加,训练误差不断减小,即模型偏差显著降低 。

6. AdaBoost算法的解释
(1)前向分布算法
在这里插入图片描述
前向分布算法的思想是从前向后计算,当我们已知f0(x)的值时,可通过(6)式递归来计算第 i 个基函数b(x,ri)及其系数,i = 1,2,…M。
(2) AdaBoost损失函数最小化
AdaBoost算法的强分类器是一系列弱分类器的线性组合,AdaBoost的损失函数L(y,f(x))为指数函数:
在这里插入图片描述
利用前向分布算法最小化,可得到每一轮的弱学习器和弱学习器权值。第m轮的弱学习器和权值求解过程:
在这里插入图片描述
求解弱学习器Gm*(x)后,(9)式对α求导并使导数为0,得:在这里插入图片描述
其中,α是弱学习器权值,e为分类误差率:
在这里插入图片描述

7. AdaBoost算法的过拟合问题讨论
在这里插入图片描述
图(1)(2)的训练误差都为0,那么这两种分类模型的泛化能力孰优孰劣?在回答这个问题,我想首先介绍下边界理论(Margin Theory)。
周志华教授在《集成学习方法基础与算法》证明了:
在这里插入图片描述
由上式可知,泛化误差收敛于某个上界,训练集的边界(Margin)越大,泛化误差越小,防止模型处于过拟合情况。如下图:
在这里插入图片描述
结论:增加集成学习的弱学习器数目,边界变大,泛化误差减小。
3)AdaBoost分类模型边界评估
AdaBoost的强分类器:
在这里插入图片描述
AdaBoost的边界定义为f(x)的绝对值,边界越大,泛化误差越好。
当训练程度足够深时,弱学习器数目增加,f(x)绝对值增加,则泛化能力增强。

结论:AdaBoost算法随着弱学习器数目的增加,边界变大,泛化能力增强。

8. AdaBoost算法的正则化
为了防止AdaBoost过拟合,我们通常也会加入正则化项。AdaBoost的正则化项可以理解为学习率(learning rate)。
在这里插入图片描述
v的取值范围为:0 < v < 1。因此,要达到同样的训练集效果,加入正则化项的弱学习器迭代次数增加,由上节可知,迭代次数增加可以提高模型的泛化能力

9. 总结
AdaBoost的核心思想在于样本权重的更新和弱分类器权值的生成,样本权重的更新保证了前面的弱分类器重点处理普遍情况,后续的分类器重点处理疑难杂症。最终,弱分类器加权组合保证了前面的弱分类器会有更大的权重,这其实有先抓总体,再抓特例的分而治之思想。

关于AdaBoost算法的过拟合问题,上两节描述当弱学习器迭代数增加时,泛化能力增强。AdaBoost算法不容易出现过拟合问题,但不是绝对的,模型可能会处于过拟合的情况:
(1)弱学习器的复杂度很大,因此选择较小复杂度模型可以避免过拟合问题,如选择决策树桩。adaboost + 决策树 = 提升树模型。
(2)训练数据含有较大的噪声,随着迭代次数的增加,可能出现过拟合情况。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值