数据分析实战 45 讲
陈旸
清华大学计算机博士
123928 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 49 讲
第二模块:数据分析算法篇 (20讲)
第四模块:数据分析工作篇 (2讲)
数据分析实战 45 讲
15
15
1.0x
00:00/00:00
登录|注册

34丨AdaBoost(上):如何使用AdaBoost提升分类器性能?

总结
算法示例
工作原理
AdaBoost算法

该思维导图由 AI 生成,仅供参考

今天我们学习 AdaBoost 算法。在数据挖掘中,分类算法可以说是核心算法,其中 AdaBoost 算法与随机森林算法一样都属于分类算法中的集成算法。
集成的含义就是集思广益,博取众长,当我们做决定的时候,我们先听取多个专家的意见,再做决定。集成算法通常有两种方式,分别是投票选举(bagging)和再学习(boosting)。投票选举的场景类似把专家召集到一个会议桌前,当做一个决定的时候,让 K 个专家(K 个模型)分别进行分类,然后选择出现次数最多的那个类作为最终的分类结果。再学习相当于把 K 个专家(K 个分类器)进行加权融合,形成一个新的超级专家(强分类器),让这个超级专家做判断。
所以你能看出来,投票选举和再学习还是有区别的。Boosting 的含义是提升,它的作用是每一次训练的时候都对上一次的训练进行改进提升,在训练的过程中这 K 个“专家”之间是有依赖性的,当引入第 K 个“专家”(第 K 个分类器)的时候,实际上是对前 K-1 个专家的优化。而 bagging 在做投票选举的时候可以并行计算,也就是 K 个“专家”在做判断的时候是相互独立的,不存在依赖性。

AdaBoost 的工作原理

了解了集成算法的两种模式之后,我们来看下今天要讲的 AdaBoost 算法。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

AdaBoost算法是一种集成学习算法,通过训练多个弱分类器,将它们组合成一个强分类器,从而提升分类器性能。该算法通过改变样本的数据分布来实现,对于正确分类的样本降低权重,对于错误分类的样本增加权重,使训练焦点集中在难分类的样本上。AdaBoost的工作原理包括选择最优弱分类器和计算每个弱分类器在强分类器中的权重。在示例中,通过多轮训练选择最优分类器,并根据分类器权重公式得到最终的强分类器。AdaBoost算法的计算流程清晰,通过训练多个弱分类器并组合它们,可以得到更高的分类准确率。AdaBoost算法的强大之处在于迭代训练的机制,通过多次迭代训练,每次引入一个新的弱分类器,最终形成一个强分类器。在每一轮的训练中,选择最优的弱分类器,对应的是错误率最低的分类器。同时,样本的权重会根据分类结果发生变化,让之前错误分类的样本得到更多概率的重复训练机会。这种机制类似于学习生活中善于利用错题本来提升学习效率和学习成绩的做法。AdaBoost算法的核心思想是通过多次迭代训练,将多个弱分类器组合成一个强分类器,从而提高分类准确率。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《数据分析实战 45 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(23)

  • 最新
  • 精选
  • third
    作业 1.假设分类正确就是吃鸡成功。 1)训练多个弱分类器,并不断迭代弱分类器,选择最优弱分类器 枪法,一个弱分类器,你可以通过玩的越来越多,练习越来越好 身法,一个弱分类器,同理 意识,一个弱分类器。同理 ··· 2)将弱分类器组合起来,形成一个强分类器 枪法,身法,眼神,你只有一个的话,实际上,你的吃鸡概率并不高。但是三个都好的人,吃鸡概率就是高。这就是强分类器。 2.把分类正确理解成功的的话, 1)训练多个弱分类器,并不断迭代弱分类器,选择最优弱分类器 努力获取了一个领域的知识和道理,就是一个弱分类器,不断地学习和精进,在一个知识领域变得更强 3)将弱分类器组合起来,形成一个强分类器 合理跨界,将两个领域的知识组合起来,产生新收益。比如软硬件结合的苹果,仅一家公司就占据了整个手机市场利润的50%以上。 两个领域的组合,就是一个强分类器。 理解 1.通过修改样本的数据分布来实现算法的。 正确分类的,就少分点 错误分类的,就多分点。 像做题, 做正确的题,下次就少做点,反正会了。 做错的题,下次多做点,集中在错题上 每次这个题都在变化,随着你学习的深入,你做错的题会越来越少。 2.样本的权重时根据之前的k论权重以及k个分类器的准确率而定的。 你决定做什么样题。 1.取决于你上次做对了什么题,做错了什么题 2.做正确了,你就少做点。 3.做错了,你就多做点。 提问:Zk是啥意思?,yi是啥意思? 流程 1.获取基础权重 2.获取基础分类器 3.计算错误率,选择错误率最低的为最优分类器 4.通过计算分类器权重公式,达到减少正确样本数据分布,增加错误样本数据分布 5.代入W k+1,i和D k+1 的公式,得到新的权重矩阵 7.在新的权重矩阵上,计算错误率,选择错误最低的为最优分类器 剩下的就是迭代,重复 直到迭代完成,获得强分类器

    编辑回复: 总结笔记做的很完善。这里Zk是归一化因子,使得Dk+1成为一个概率分布。yi属于标记集合{-1,+1},1代表分类正确,-1代表分类错误。

    2019-03-01
    2
    22
  • 清夜
    多个弱分类器训练成为一个强分类器。 类比为: 全班同学都做一张正常的高中试卷,但是每道题无论大小都是一样的分数。 1. 给得分最高的同学赋予一个比他人更高的权重,并且他做错的题目分数都提高一些。 2. 重新计分,选择此时分数最高的人赋予一定权重,提高他做错题目的分数。 3. 不断重复以上步骤。 4. 每个同学都重新有了权重之后,一个强分类器就诞生了。

    作者回复: 哈哈 这个解释很赞

    2019-10-30
    11
  • 王彬成
    如何理解 AdaBoost 中弱分类器,强分类器概念的?另外,AdaBoost 算法是如何训练弱分类器从而得到一个强分类器的? 1、弱分类器,是指基础分类器,正确率略高于50%的那种。 强分类器是通过训练出多个弱分类器,并赋值权重,最后形成弱分类器+权重的模型。 2、得到强分类器的方法: 参考链接:https://www.cnblogs.com/hlongch/p/5734293.html adaboost算法的核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。 1.一开始,给训练数据中的每一个样本,赋予其一个权重,权重都初始化成相等值。如(1/样本数量) 2.首先在训练数据中训练出一个弱分类器并计算改分类器的错误率,选取错误率最小的分类器,并基于分类器错误率计算其权重值alpha。 3.在分类器的第二次训练当中,将会重新调整每个样本的权重,其中第一次分对的样本的权重将会降低,而第一次分错的样本权重将会提高。然后在同一数据集上再次训练弱分类器。得出第二个错误率小的分类器,并基于错误率计算权重。 4.重复“重新分配样本权重——计算分类器错误率——选取分类器——计算分类器权重” 5.最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。

    编辑回复: 对弱分类器,强分类器,以及如何训练AdaBoost分类器总结的很好。

    2019-03-01
    8
  • Ehh1ouyz
    补充:这里的Zk是归一化因子。

    作者回复: 对的

    2019-03-03
    3
    7
  • Ronnyz
    弱分类器:分类准确率比较低,可能在(50%~70%)之间 强分类器:在AdaBoost算法中,将一系列的弱分类器以不同的权重比组合作为最终分类选择 在筛选每一轮的最优分类器后,调整样本的权重,以获得一个更优的弱分类器。

    作者回复: 对的

    2019-11-24
    3
  • Geek_c9fa4e
    1、假设AdaBoost算法是球队 弱分类器:在众多球队里,踢得不好的队伍 强分类器:通过在弱分类不断地寻找出弱分类里面踢得好的,最后组成一个强的球队 2、如何训练成强分类器: 1、首先初始化一个相同权重。 2、然后在训练数据中计算弱分类·的错误率,选择错误率最低的去计算该权重 3、接着再次训练,重新调整每个样本的权重,其中第一次分对的样本的权重将会降低,而第一次分错的样本权重将会提高。然后在同一数据集上再次训练弱分类器。得出第二个错误率小的分类器,并基于错误率计算权重。 4、重复此步骤 5、最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。

    作者回复: Geek_c9fa4e同学总结的很棒,大家可以看下

    2020-04-30
    2
  • 三硝基甲苯
    根据我的反推,首先这里的所有涉及到对数和指数的都是以e为底的,然后就是Dk+1这一步,需要先计算Zk,这个就是把 wk*e^(-ak*y*Gk(x))把全部的加起来就是了,然后再去算Wk+1,然后就进一步可以算出Dk+1。 个人理解就是AdaBoost就是先把数据通过权重的方式分割成不同的部分,然后每个部分再去交给在这些里较为专业的分类器去分类,通过迭代,再把计算的结果带上权重后,就是结果了。

    作者回复: Good Sharing

    2019-03-23
    2
  • juixv3937
    log没有底数怎么计算啊

    作者回复: 可以理解是ln,也就是以e为底数

    2019-08-18
    3
  • 滨滨
    弱分类器分类正确率比随机稍微高一点,每次选择相对最优的分类器,然后对分类错误的部分加强训练,最后得到一个强分类器。 1.一开始,给训练数据中的每一个样本,赋予其一个权重,权重都初始化成相等值。如(1/样本数量) 2.首先在训练数据中训练出一个弱分类器并计算改分类器的错误率,选取错误率最小的分类器,并基于分类器错误率计算其权重值alpha。 3.在分类器的第二次训练当中,将会重新调整每个样本的权重,其中第一次分对的样本的权重将会降低,而第一次分错的样本权重将会提高。然后在同一数据集上再次训练弱分类器。得出第二个错误率小的分类器,并基于错误率计算权重。 4.重复“重新分配样本权重——计算分类器错误率——选取分类器——计算分类器权重” 5.最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。

    作者回复: 总结的不错

    2019-04-21
  • 李沛欣
    通过训练多个弱分类器,集成一个强分类器。

    作者回复: 对的 三个臭皮匠顶个诸葛亮

    2019-03-16
收起评论
显示
设置
留言
23
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部