浅谈AdaBoost算法--附有详细示例解析

本篇文章先介绍了提升放法和AdaBoost算法。已经了解的可以直接跳过。后面给出了AdaBoost算法的两个例子,附有详细计算过程。

1、提升方法(来源于统计学习方法)

  提升方法是一种常用的统计学习方法,应用十分广泛且有效。在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。提升算法基于这样一种思路:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。实际上,就是“三个臭皮匠顶个诸葛亮”的道理。
  历史上,Kearns和Valiant首先提出了“强可学习(strongly learnable)”和“弱可学习(weakly learnable)”的概念。指出:在概率近似正确(probably approximately correct,PAC)学习框架中,一个概念(一个分类),如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的;一个概念,如果存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略好,那么就称这个概念是弱可学习的。非常有趣的是Schapire后来证明强可学习与弱可学习是等价的,也就是说,在PAC学习的框架下,一个概念是强可学习的充分必要条件是这个概念是弱可学习的。
  这样一来,问题便成为,在学习中,如果已经发现了“弱学习算法”,那么能否将它提升(boost)为“强学习算法”。大家知道,发现弱学习算法通常要比发现强学习算法容易得多。那么如何具体实施提升,便成为开发提升方法时所要解决的问题。关于提升方法的研究很多,有很多算法被提出。最具代表性的是AdaBoost算法(AdaBoost algorithm)。
  对于分类问题而言,给定一个训练样本集,求比较粗糙的分类规则(弱分类器)要比求精确的分类规则(强分类器)容易得多。提升方法就是从弱学习算法出发,反复学习,得到一系列弱分类器,然后组合这些分类器,构成一个强分类器。
  这样。对于提升算法来说,有两个问题需要回答:一是在每一轮如何改变训练数据的权值分布;二是如何将弱分类器组合成为一个强分类器。

2、AdaBoost算法

  对于上一小节末尾提出的提升方法的两个问题,AdaBoost算法的做法是:1、提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。2、采用加权多数表决的方法。具体的,加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,减小分类误差大的弱分类器的权值,使其在表决中起较小的作用。
  下面给出AdaBoost算法的公式:

输入:训练数据集 T={ x1,y1,x2,y2,...xN,yN} ,其中 xiXRn,yiY={ 1,+1} ;弱学习算法。
输出:最终分类器G(x)。
(1)初始化训练数据的权值分布
   

D1=(w11,...,w1i,...,w1N),w1i=1N,i=1,2,...,N

   注:第一次训练弱分类器时各个样本的权值是相等的。
(2)对m=1,2,…,M      注:这里是个循环
(a)使用具有权值分布 Dm 的训练数据集学习,得到基本分类器
Gm:X{ 1,+1}

(b)计算 Gm(x) 在训练集上的分类误差率
em=P(Gm(xi)yi)=i=1nwmiI(Gm(xi)yi)

注: I(Gm(xi)yi) :不等函数I值为1.相等函数值为0。
(c)计算 Gm(x) 的系数
αm=12log1emem
这里的对数是自然对数。注:显然 αm em 的调单减函数,这里就解释了为什么对于没有正确分类的数据要加大权值。
(d)更新训练数据集的权值分布
Dm+1=(wm+1,1,...,wm+1,i,...,wm+1,N)

wm+1,i=wmiZmexp(αmyiGm(xi))i=1,2,...,N
这里, Zm 是规范化因子
Zm=i=1Nwmiexp(αmyiGm(xi))
它使 Dm+1 成为一个概率分布。
注:自已比较 Zm wm+1,i 的表达式,会发现这里的 Zm 就是在对 wm+1,i 进行归一化工作。
(3)构建基本分类器的线性组合
f(x)=m=1MαmGm(x)
得到最终分类器
G(x)=sign(f(x))=sign(m=1MαmGm(x))

注:对于增大分类错误数据的权值和分类误差计算的说明:

1、 Gm(x) 的系数

αm=12log1
  • 42
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值