数据分析实战45讲
陈旸
清华大学计算机博士
立即订阅
17314 人已学习
课程目录
已完结 48 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 你为什么需要数据分析能力?
免费
第一模块:数据分析基础篇 (16讲)
01丨数据分析全景图及修炼指南
02丨学习数据挖掘的最佳路径是什么?
03丨Python基础语法:开始你的Python之旅
04丨Python科学计算:用NumPy快速处理数据
05丨Python科学计算:Pandas
06 | 学数据分析要掌握哪些基本概念?
07 | 用户画像:标签化就是数据的抽象能力
08 | 数据采集:如何自动化采集数据?
09丨数据采集:如何用八爪鱼采集微博上的“D&G”评论
10丨Python爬虫:如何自动化下载王祖贤海报?
11 | 数据科学家80%时间都花费在了这些清洗任务上?
免费
12 | 数据集成:这些大号一共20亿粉丝?
13 | 数据变换:考试成绩要求正态分布合理么?
14丨数据可视化:掌握数据领域的万金油技能
15丨一次学会Python数据可视化的10种技能
16丨数据分析基础篇答疑
第二模块:数据分析算法篇 (20讲)
17 丨决策树(上):要不要去打篮球?决策树来告诉你
18丨决策树(中):CART,一棵是回归树,另一棵是分类树
19丨决策树(下):泰坦尼克乘客生存预测
20丨朴素贝叶斯分类(上):如何让机器判断男女?
21丨朴素贝叶斯分类(下):如何对文档进行分类?
22丨SVM(上):如何用一根棍子将蓝红两色球分开?
23丨SVM(下):如何进行乳腺癌检测?
24丨KNN(上):如何根据打斗和接吻次数来划分电影类型?
25丨KNN(下):如何对手写数字进行识别?
26丨K-Means(上):如何给20支亚洲球队做聚类?
27丨K-Means(下):如何使用K-Means对图像进行分割?
28丨EM聚类(上):如何将一份菜等分给两个人?
29丨EM聚类(下):用EM算法对王者荣耀英雄进行划分
30丨关联规则挖掘(上):如何用Apriori发现用户购物规则?
31丨关联规则挖掘(下):导演如何选择演员?
32丨PageRank(上):搞懂Google的PageRank算法
33丨PageRank(下):分析希拉里邮件中的人物关系
34丨AdaBoost(上):如何使用AdaBoost提升分类器性能?
35丨AdaBoost(下):如何使用AdaBoost对房价进行预测?
36丨数据分析算法篇答疑
第三模块:数据分析实战篇 (7讲)
37丨数据采集实战:如何自动化运营微博?
38丨数据可视化实战:如何给毛不易的歌曲做词云展示?
39丨数据挖掘实战(1):信用卡违约率分析
40丨数据挖掘实战(2):信用卡诈骗分析
41丨数据挖掘实战(3):如何对比特币走势进行预测?
42丨当我们谈深度学习的时候,我们都在谈什么?
43丨深度学习(下):如何用Keras搭建深度学习网络做手写数字识别?
第四模块:数据分析工作篇 (2讲)
44丨如何培养你的数据分析思维?
45丨求职简历中没有相关项目经验,怎么办?
加餐 (1讲)
加餐丨在社交网络上刷粉刷量,技术上是如何实现的?
结束语 (1讲)
结束语丨当大家都在讲知识和工具的时候,我更希望你重视思维和实战
数据分析实战45讲
登录|注册

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

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

AdaBoost 的工作原理

了解了集成算法的两种模式之后,我们来看下今天要讲的 AdaBoost 算法。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《数据分析实战45讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(14)

  • 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
    1
    7
  • Ehh1ouyz
    补充:这里的Zk是归一化因子。
    2019-03-03
    3
  • 王彬成
    如何理解 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
    3
  • 那时刻
    老师,你好。请问样本权重的计算公式是个指数函数exp,为啥是指数函数?不用指数的话,有啥不同么?
    2019-03-01
    1
  • Ronnyz
    弱分类器:分类准确率比较低,可能在(50%~70%)之间
    强分类器:在AdaBoost算法中,将一系列的弱分类器以不同的权重比组合作为最终分类选择
    在筛选每一轮的最优分类器后,调整样本的权重,以获得一个更优的弱分类器。

    作者回复: 对的

    2019-11-24
  • 清夜
    多个弱分类器训练成为一个强分类器。
    类比为:
    全班同学都做一张正常的高中试卷,但是每道题无论大小都是一样的分数。
    1. 给得分最高的同学赋予一个比他人更高的权重,并且他做错的题目分数都提高一些。
    2. 重新计分,选择此时分数最高的人赋予一定权重,提高他做错题目的分数。
    3. 不断重复以上步骤。
    4. 每个同学都重新有了权重之后,一个强分类器就诞生了。
    2019-10-30
  • juixv3937
    log没有底数怎么计算啊
    2019-08-18
    2
  • 滨滨
    弱分类器分类正确率比随机稍微高一点,每次选择相对最优的分类器,然后对分类错误的部分加强训练,最后得到一个强分类器。

    1.一开始,给训练数据中的每一个样本,赋予其一个权重,权重都初始化成相等值。如(1/样本数量)
    2.首先在训练数据中训练出一个弱分类器并计算改分类器的错误率,选取错误率最小的分类器,并基于分类器错误率计算其权重值alpha。
    3.在分类器的第二次训练当中,将会重新调整每个样本的权重,其中第一次分对的样本的权重将会降低,而第一次分错的样本权重将会提高。然后在同一数据集上再次训练弱分类器。得出第二个错误率小的分类器,并基于错误率计算权重。
    4.重复“重新分配样本权重——计算分类器错误率——选取分类器——计算分类器权重”

    5.最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。
    2019-04-21
  • 三硝基甲苯
    根据我的反推,首先这里的所有涉及到对数和指数的都是以e为底的,然后就是Dk+1这一步,需要先计算Zk,这个就是把 wk*e^(-ak*y*Gk(x))把全部的加起来就是了,然后再去算Wk+1,然后就进一步可以算出Dk+1。
    个人理解就是AdaBoost就是先把数据通过权重的方式分割成不同的部分,然后每个部分再去交给在这些里较为专业的分类器去分类,通过迭代,再把计算的结果带上权重后,就是结果了。
    2019-03-23
  • 李沛欣
    通过训练多个弱分类器,集成一个强分类器。
    2019-03-16
  • Python
    弱分类器是决策层,强分类器是决策汇总后的结果
    2019-03-02
  • 忠超
    您好。我有两个地方不明白,请老师答疑。为什么每次迭代的权重的计算方式是那么设置?另外,每次迭代得到的分类器前面的权重之和也不为1?还有,错误率等于权重乘以分类错误的个数,这个也不太理解。
    2019-03-01
  • 未来已来
    请问每次迭代之后,错误率是如何进行计算的呢?
    2019-03-01
  • 未来已来
    我的显示界面中,很多数学符号变成了[Math Processing Error]
    2019-03-01
收起评论
14
返回
顶部