提升方法AdaBoost算法

1、提升方法

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

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

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

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

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

3、AdaBoost算法

训练数据

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

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

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

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

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

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

注意:公式(4)的 αmyiGm(xi) − α m y i G m ( x i ) 项表明,在分类器正确分类的情况下,该项值<0,而错误分类时候,该项值>0,又 ex e x 是个递增函数,意味着错误的样本的权值被加大。
经过公式(4)变换,得到新的权值分布 D2 D 2
D2=(0.071430.071430.071430.071430.071430.071430.166670.166670.166670.07143) D 2 = ( 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) f m ( x ) ,公式如下:
fm(x)=m=1MαmGm(x) f m ( x ) = ∑ m = 1 M α m G m ( x )

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

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

(7)计算 α2,D3 α 2 , D 3 等
得到 f2=α1G1(x)+α2G2(x) f 2 = α 1 G 1 ( x ) + α 2 G 2 ( x )
判断 sign[f2(x)] s i g n [ f 2 ( x ) ] 是否还有错误分类的点
。。。
最终得到分类器
G(x)=sign[fm(x)] G ( x ) = s i g n [ f m ( x ) ]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值