集成学习之Adaboost算法


转载自 https://blog.csdn.net/fwh_1307/article/details/122021348

1.背景

集成学习(ensemble learning)通过构建并结合多个学习器来提升性能
集成学习分为两大类:
个体分类器存在强依赖方法(Boosting)
个体学习器之间不存在强依赖关系(Bagging,随机森林)
提升方法的思路:
对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比任何一个专家单独的判断好。实际上,就是“三个臭皮匠顶个诸葛亮”的道理。
对于提升方法来说,有两个问题:

  • 在每一轮如何改变训练数据的权值与概率分布
  • 如何将若分类器组合成一个强分类器

Boosting族最著名的代表算法是Adaboost,它的做法是:

  • 提高那些被前一轮若分类器错误分类样本数据的权值,降低正确分类样本的权值
  • 采取加权多数表决的方法,加大分类误差率小的若分类器的权值,减小分类误差率大的弱分类器的权值。

2.基本原理

强可学习:识别准确率很高并能在多项式时间内完成的学习算法
弱可学习:识别错误率小于1/2(即准确率仅比随机猜测略高的学习算法)
将多个弱分类器进行合理的结合,使其成为一个强分类器。
Adaboost采用迭代的思想,每次迭代只训练一个弱分类器,训练好的弱分类器将参与下一次迭代的使用。也就是说,在第N次迭代中,一共就有N个弱分类器,其中N-1个是以前训练好的,其各种参数都不再改变,本次训练第N个分类器。其中弱分类器的关系是第N个弱分类器更可能分对前N-1个弱分类器没分对的数据,最终分类输出要看这N个分类器的综合效果。
在这里插入图片描述
两个权重:数据权重和弱分类器权重。

3.Adaboost算法

(李航老师《统计学习方法》)
输入:
训练数据集𝑇={(𝑥_1,𝑦_1 ),(𝑥_2,𝑦_2 ),(𝑥_3,𝑦_3 ),…,(𝑥_𝑁,𝑦_𝑁 )},其中x_i∈𝑋⊆ℝ^n,
y_i∈𝑌={−1,+1};
弱学习算法;
输出:
最终分类器G(x);
(1)初始化数据权值分布
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.周志华老师Boosting25周年

(以下参考周志华老师Boosting25周年,非常推荐这个视频,讲解Boosting,非常清晰连贯)
Boosting 25年(2014周志华)

Adaboost为什么影响力大?
1.简单且高效,任何需要用到机器学习的地方都可以使用。
2.Boosting算法族核心,是一个general boosting过程。简单来说就是先生成一个学习器,判断它的效果好不好,据此调整迭代。
3.理论支持,不仅给出了训练集误差范围,还给出了泛化误差范围。
Adaboost为什么不容易过拟合
1.奥卡姆剃须刀理论:如无必要,勿增实体。
2.Adaboost似乎违背了这个理论,如下图当训练到7轮左右,训练误差为0继续训练误差还是为0,轮数增加测试集损失继续下降,这就违反了奥卡姆剃刀原则,即第7轮训练的模型,根据奥卡姆剃刀原则,该模型应该是最好的,现实却是很复杂的模型比简单的好。
在这里插入图片描述
关于统计学和间隔理论两大流派的解释:
统计学观点看Adaboost:
将模型拆解为三个部分:优化指数函数,加性模型模型,牛顿法迭代,当优化各个成分时,可以得到一系列的模型变体,得到结果是理论和实践相违背,未解释为什么不过拟合。
间隔理论解释了Adaboost随着训练增加不过拟合?
间隔:间隔越大分类越好
训练次数增加,训练误差降到0后,误差越小,训练下去间隔增大,提高了预测性能。
在这里插入图片描述
在这里插入图片描述

5.Adaboost算法优缺点

Adaboost算法优点:

  1. 不易发生过拟合
  2. 由于AdaBoost并没有限制弱学习器的种类,所以可以使用不同的学习算法来构建弱分类器;
  3. AdaBoost具有很高的精度; 相对于bagging算法和Random Forest算法,AdaBoost充分考虑的每个分类器的权重;
  4. AdaBoost的参数少,实际应用中不需要调节太多的参数。

Adaboost算法缺点:

  1. 数据不平衡导致分类精度下降
  2. 训练耗时,主要由于多个弱分类器的训练耗时
  3. 弱分类器的数目不好设置
  4. 对异常样本敏感,由于adaboost对错误样本会增加其权值,异常样本会获得高权值,影响最终分类器的精度

6.Q&A

  1. Adaboost算法在迭代的过程中,迭代的次数怎么确定?
    我们需要考虑两个指标。
    1.正确率:上一轮与本轮正确率的差值低到一定程度就可以停止,这个差值的阈值根据需要来设定。
    2.时间:理想情况下,分类器越多分类效果就越好,但是这也造成了需要更多的时间。
  2. Adaboost的各个弱学习器的权值调整过程?
    在这里插入图片描述
    其主要思想是分类错误的点在下一次会增加权值,分类正确的点会减小权值。
  3. 弱分类器的选择及数量
    弱分类器我们可以选择很多方法选择,逻辑回归,SVM,决策树都可以。但是使用做多的就是我们之前用到的单层决策树,原因是基分类器简单好构造,且不易过拟合。迭代次数是我们手动调节的或者是模型训练到训练误差为0,与弱分类器的选择无关。
  4. Adaboost的核心思想是什么?
    核心思想就是Adaboost是一种精度提升算法(Boosting Algorithm), 主要用来解决分类预测的问题。它会逐个训练单个的分类器,调整每个单个分类器的精度,之后把若干个单个的分类器组合成一个复合分类器。通常我们把这些单个的分类器叫做弱分类器,而把最后的复合分类器叫做强分类器。(减少泛化误差见后续过拟合问题)
  5. 为什么Adaboost不易过拟合?
    Adaboost做为一个加性模型,采用了指数损失函数。理论上而言也就是说每增加一级分类器,损失函数都会减小,也就是方差会越来越大,从这个角度来理解那么adaboost其实是更容易过拟合的。但是因为我们选择的基分类器很简单,那么在实际应用中很难过拟合,这也是我们经常选择决策树桩作为基分类器的原因。但是到目前为止,还没有一个完全清楚的答案。在许多variance-bias 分解实验中也观察到,AdaBoost不仅是减少了bias,同时也减少了variance,variance的减少往往与算法容量减少有关。ECML12上有一篇文章说boosting方法中有差异的基分类集成能减小达到预计效果的模型复杂度,一定程度也起到正则化,减小variance的作用。
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值