提升方法AdaBoost算法

本文深入解析Adaboost算法的工作原理,包括弱分类器的提升方法、训练数据权值的调整策略,以及如何通过加权多数表决组合弱分类器形成强分类器。通过具体实例,展示了Adaboost算法在不同轮次中如何逐步减少分类错误,直至达到最优分类效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、提升方法

提升方法就是从弱学习算法出发,反复学习,得到一系列弱分类器(又称为基本分类器),然后组合弱分类器,构成一个强分类器。大多数提升的方法都是改变训练数据的的概率分布(训练数据的权值分布)。

2、提升方法相关问题
(1)在每一轮如何改变训练数据的权值或者概率分布?

Adaboost的做法就是,提高那些前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。

(2)如何将弱分类器组合成一个强分类器?

Adaboost采取加权多数表决的方法。加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,减小弱分类器误差率大的弱分类器的权值,使其在表决中起较小的作用。

3、AdaBoost算法

训练数据

序号12345678910
xx 0 1 2 3 4 5 6 7 8 9
y111-1-1-1111-1

步骤:
(1)初始化数据的权值D1={w1,...,wN}D1={w1,...,wN}
一共10个样本,所以
w1=w2=...=w10=1N=0.1w1=w2=...=w10=1N=0.1
(2)在权值分布为D1D1上构建基本分类器G1(x)G1(x)如下

G1(x)=1,x<2.51,x>2.5(1)(1)G1(x)={1,x<2.5−1,x>2.5

因为2.5作为分界线使得分类的误差最低。
注意,基本分类器Gm(x)Gm(x)的分类误差的计算如下。即基本分类器对整个数据划分,划分不正确的样本的权值之和。
em=P(Gm(xi)yi)=Gm(xi)yiwmi(2)(2)em=P(Gm(xi)≠yi)=∑Gm(xi)≠yiwmi

(3)计算G1(x)G1(x)在数据集上的误差
因为G1(x)G1(x)分类器的划分界限是5.5,即序号为{7,8,9}{7,8,9}的3个样本被错误分类,他们的权值都是0.1,所以e1=0.3e1=0.3
(3)计算G1(x)G1(x)的系数,公式如下
αm=12log1emem(3)(3)αm=12log1−emem

注意:公式(3)是个递减函数,意味着分类器的误差越大,其权重系数越小,在表决中作用越小。
所以,α1=12log1e1e1=0.4236α1=12log1−e1e1=0.4236
(4)更新训练数据的权值分布,公式如下
wi=wieαmyiGm(xi)Ni=1wieαmyiGm(xi)(4)(4)wi=wie−αmyiGm(xi)∑i=1Nwie−αmyiGm(xi)

注意:公式(4)的αmyiGm(xi)−αmyiGm(xi)项表明,在分类器正确分类的情况下,该项值<0,而错误分类时候,该项值>0,又exex是个递增函数,意味着错误的样本的权值被加大。
经过公式(4)变换,得到新的权值分布D2D2
D2=(0.071430.071430.071430.071430.071430.071430.166670.166670.166670.07143)D2=(0.07143,0.07143,0.07143,0.07143,0.07143,0.07143,0.16667,0.16667,0.16667,0.07143)

从中可以看到原来被错误分类序号为{4,5,6}{4,5,6}的3个样本的权值得到加强。
(5)构建基本分类器的线性组合fm(x)fm(x),公式如下:
fm(x)=m=1MαmGm(x)fm(x)=∑m=1MαmGm(x)

当前的线性组合为
所以f1(x)=α1G1(x)=0.4236G1(x)f1(x)=α1G1(x)=0.4236∗G1(x)
分类器sign[f1(x)]sign[f1(x)]在训练集上有3个错分样本。
其中,sign(x)或者Sign(x)叫做符号函数,在数学和计算机运算中,其功能是取某个数的符号(正或负):当x>0,sign(x)=1;当x=0,sign(x)=0;当x<0, sign(x)=-1。
由于线性组合分类器还有错误样本。所以,继续上面的步骤(2)-(5).
(6)在权值分布为D2D2上构建基本分类器G2(x)G2(x)如下
G2(x)=1,x<8.51,x>8.5(5)(5)G2(x)={1,x<8.5−1,x>8.5

因为新的权值分布如下,取分界限8.5时候序号为{4,5,6}{4,5,6}的3个样本被错误分类,他们的权值都是0.07143,使得误差最小,为e2=0.071433=0.21429e2=0.07143∗3=0.21429。(注意,前一轮错误分类的序号为{7,8,9}{7,8,9},在本轮中被正确分类了,因为其权值变大,使得不能再错误分类他们,如果继续错误分类他们,根据误差的计算原理,计算得出的误差将比较大)
D2=(0.071430.071430.071430.071430.071430.071430.166670.166670.166670.07143)D2=(0.07143,0.07143,0.07143,0.07143,0.07143,0.07143,0.16667,0.16667,0.16667,0.07143)

(7)计算α2,D3α2,D3等
得到f2=α1G1(x)+α2G2(x)f2=α1G1(x)+α2G2(x)
判断sign[f2(x)]sign[f2(x)]是否还有错误分类的点
。。。
最终得到分类器
G(x)=sign[fm(x)]G(x)=sign[fm(x)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值