AdaBoost是一种准确性很高的分类算法,它的原理是把K个弱分类器(弱分类器的意思是该分类器的准确性较低),通过一定的组合(一般是线性加权进行组合),组合成一个强的分类器,提高分类的准确性。

因此,要想使用AdaBoost,需要首先找几个弱的分类器出来,然后进行组合。这些弱分类器,其实可以自己指定,自己随意给出,但效果就不能保证。

要想通过AdaBoost得到一个准确性高的分类器,需要小心设计这些弱分类器。我自己理解,弱分类器可以采用最简单的形式,即二分法(二元分类器),取一个阈值v,某个特征小于v的是一类,该特征大于v的是另一类,至于这个阈值取多少合适,可以通过这个分类器的错误率(被错误分类的样本数除以总的样本数)来决定,若取阈值为v1得到的二元分类器的错误率为e1,而取阈值为v2的错误率e2,若e2<e1,说明v2更合适。还可以多取几个阈值,从中找出最佳的。《机器学习实战》解释了AdaBoost原理,但后面的代码让人不明白它到底在干啥。故自己理解之后,在此记录。

下面两篇文章可以帮助理解AdaBoost的算法过程和原理推导过程:

(1) AdaBoost算法过程: Adaboost算法原理分析和实例+代码

其中,sign(a1*h1(x)+a2*h2(X)+a3*h3(x)),其中sign(*)表示取*的正负号,若*为正数,则sign(*)返回1,否则返回-1。而例子中:

最后的分类器 f3(x)=0.4236h1(x) + 0.6496h2(x)+0.9229h3(x),这里的h1(x)里面的x只是代表特征的意思,在这个例子中有x1,x2两个特征,因此,应该把两个特征都带进h1,h2,h3当中去。

例如,其中样本9 X9=(9,8),x1=9,x2=8,因此,h1(X)=-1,h2(X)=-1,h3(X)=1,于是f3(x)=0.4236*(-1)+0.6496*(-1)1+0.9229*1=-0.150299<0,因此f3(x)给出的分类结果为-1,分类结果是正确的。

(2) AdaBoost原理和推导: Adaboost 算法的原理与推导

Bagging和Boosting都是集成学习的一种实现方式,算是一种框架和思路,不是一个算法,因为它里面的弱分类器可以用决策树、svm、神经网络等各种算法进行组合。

另外,Bagging与Boosting的差别:https://www.cnblogs.com/liuwu265/p/4690486.html

bagging是从大数据集中随机抽样N次,形成N个不同的训练集,每个训练集得到一个弱分类器,再把这些弱分类器通过投票等方式进行组合,形成一个强分类器;而boosting是对同一个训练集迭代地进行训练,每次找出一个错误率最低的弱分类器,然后根据这个弱分类器的错误率计算更新每个样本的权重,这个权重将在下轮寻找错误率最低的弱分类器当中用到,因为错误率的计算方法就是把被弱分类器错分的样本的权重求和即为下一个弱分类器的错误率。详见:

https://blog.csdn.net/ruiyiin/article/details/77114072 (仔细看bagging和boosting的示意图)及

小象学院的“详解AdaBoost算法”(田野)这一课程,及小象学院“机器学习”课程的“12提升”的pdf文档中adaboost的举例 和  Adaboost 算法的原理与推导

https://blog.csdn.net/hero_boke/article/details/78991722

AdaBoost理解的更多相关文章

  1. [11-2] adaboost理解

    以二分类问题为例({-1,+1}) adaboost步骤: 1.初始化u1=(1/N,1/N,-,1/N) 2.找到h,使最小化,记该h为g:计算作为该g的权重 3.更新ui: 4.重复2,3得到T个 ...

  2. 深入理解Adaboost算法

    理解算法确实是欲速则不达,唯有一步一步慢慢看懂,然后突然觉得写的真的太好了,那才是真的有所理解了. Adaboost的两点关键点: 1. 如何根据弱模型的表现更新训练集的权重: 2. 如何根据弱模型的 ...

  3. Adaboost新理解

    Adaboost有几个难点: 1.弱分类器的权重怎么理解? 误差大的弱分类器权重小,误差小的弱分类器权重大.这很好理解.在台湾大学林轩田老师的视频中,推导说,这个权值实际上貌似梯度下降,权值定义成1/ ...

  4. Adaboost提升算法从原理到实践

    1.基本思想: 综合某些专家的判断,往往要比一个专家单独的判断要好.在"强可学习"和"弱科学习"的概念上来说就是我们通过对多个弱可学习的算法进行"组合 ...

  5. 集成学习之Adaboost算法原理小结

    在集成学习原理小结中,我们讲到了集成学习按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习器之间存在强依赖关系,另一类是个体学习器之间不存在强依赖关系.前者的代表算法就是是boostin ...

  6. 机器学习——AdaBoost元算法

    当做重要决定时,我们可能会考虑吸取多个专家而不只是一个人的意见.机器学习处理问题也是这样,这就是元算法(meta-algorithm)背后的思路. 元算法是对其他算法进行组合的一种方式,其中最流行的一 ...

  7. Adaboost\GBDT\GBRT\组合算法

    Adaboost\GBDT\GBRT\组合算法(龙心尘老师上课笔记) 一.Bagging (并行bootstrap)& Boosting(串行) 随机森林实际上是bagging的思路,而GBD ...

  8. adaboost原理与实践

    Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器).其算法本身是通过改变数据分布来实现的,它根据 ...

  9. Adaboost 算法

    一 Boosting 算法的起源 boost 算法系列的起源来自于PAC Learnability(PAC 可学习性).这套理论主要研究的是什么时候一个问题是可被学习的,当然也会探讨针对可学习的问题的 ...

随机推荐

  1. 1-MyBatisPlus教程(一)

    1,简介 官网:http://mp.baomidou.com/ 参考教程:http://mp.baomidou.com/guide/ MyBatis-Plus(简称 MP)是一个 MyBatis 的增 ...

  2. 播放音乐(mciSendString)

    1.需要引用命名空间using System.Runtime.InteropServices; 这里只是做了个简单的播放功能,想了解更多查看它的官方文档 [DllImport("winmm. ...

  3. Mysql数据库多表联查

    内连接:查询的是多个表的交集 外连接:查询的是一张表的全部数据和另一张表满足要求的数据 student数据库表 grade数据库表 内连接: 隐式内连接 SELECT s.id, s. NAME, s ...

  4. CSS中的间距设置与盒子模型

    CSS间距 内补白 外补白 盒子模型 CSS间距 很多时候我们为了美观,需要对内容进行留白设置,这时候就需要设置间距了. 内补白 设置元素的内间距 padding: 检索或设置对象四边的内部边距 pa ...

  5. 201771010113 李婷华 《面向对象程序设计(Java)》第十七周总结

    一.理论知识部分 Java 的线程调度采用优先级策略:优先级高的先执行,优先级低的后执行:多线程系统会自动为每个线程分配一个优先级,缺省时,继承其父类的优先级: 任务紧急的线程,其优先级较高: 同优先 ...

  6. java使用window builder图形界面开发简易计算器

    界面效果: /** * */ package calculator; import java.awt.BorderLayout; import java.awt.EventQueue; import ...

  7. Coursera课程笔记----Write Professional Emails in English----Week 2

    Let's Start Writing (Week 2) Write Effective Subject Lines be BRIEF 50 characters or less = 5-7 word ...

  8. FOC 转子初始位置检测(图文详解)

    本文介绍了PMSM的转子初始位置的各种情况: 文章目录 1 什么是转子的初始位置? 2 如何让转子运行到初始位置? 3 iq=IDC;id=0;θ=0i_{q}=I_{DC} ;i_{d}=0;\th ...

  9. [hdu4628 Pieces]二进制子状态,DP

    题意:给一个长度为16的字符串,每次从里面删掉一个回文序列,求最少需要几次才能删掉所有字符 思路:二进制表示每个字符的状态,那么从1个状态到另一个状态有两种转移方式,一是枚举所有合法的回文子序列,判断 ...

  10. [hdu4585]离线,并查集

    题意:把一些数加到集合里面,每个数有两个属性,分别是编号和值,加进去之前询问集合里面距离自己“最近”的数的编号.最近的意思是值的差的绝对值最小,如果有相等的,则取值小的.并且已知所有数的id和valu ...