Adaboost算法原理与实例

1、Adaboost算法简介

集成学习包括bagging、boosting、stacking三种方法。Adaboost作为boosting方法的一种,由Yoav Freund和RobertSchapire于1995年提出。

Adaboost的英文含义为Adaptive boost,意为自适应增强。Adaboost算法包括分类算法与回归算法,这里讲解分类算法。

这一算法的基本思路是,在一组弱分类器的基础上,通过不断调整弱分类器权重与样本权重,构建强分类器。这一算法需要事先给定一组弱分类器。在这一过程中,会增加分类误差大的样本的权重,减少分类误差小的样本的权重;并通过样本误差进一步确定弱分类器的权重,使得误差越小其权重越大。

2、Adaboost算法过程

2.1 输入输出

1)输入

训练样本集:D=\left \{ (x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N}) \right \},其中,y_{i}\in \left \{ 1,-1 \right \},i=1,2,...,N

J个弱分类器:h_{1},h_{2},...,h_{J}

2)输出

最终分类器H(x)

2.2 算法过程

2.2.1 初始化样本权重

设初始的样本权重为W_{0}=(w_{01},w_{02},...,w_{0N})

给训练的每个样本赋予相等的权重:\frac{1}{N},即以上权重W_{0}=(\frac{1}{N},\frac{1}{N},...,\frac{1}{N})

2.2.2 进行迭代

对于第t=1,2,...,T轮迭代:

1)确定本轮基本分类器

根据最新的样本权重W_{t}=\left ( w_{t1},w_{t2},...,w_{tN} \right ),计算每一个弱分类的误差。

每个弱分类器的误差为:

e_{tj}=P(h_{j}(x_{i})\neq y_{i}|i\in \left \{ 1,2,..,N \right \})=\sum_{i=0}^{N}w_{ti}I(h_{j}(x_{i})\neq y_{i})

j=1,2,...,J

其中,误差最小的弱分类器记为H_{t},确定为本轮基本分类器,其误差为e_{t}

2)计算本轮基本分类器的权重

上述基本分类器H_{t}的权重:

\alpha _{t}=\frac{1}{2}ln\frac{1-e_{t}}{e_{t}}

从上述公式可以看出:当e_{t}<0.5时,\alpha _{t}>0;当e_{t}=0.5时,\alpha _{t}=0;当e_{t}>0.5时,\alpha _{t}<0。并且,随着e_{t}的增大,\alpha _{t}会逐渐减小。

3)确定本轮的分类函数和强分类器

t=1时,分类函数f_{1}(x)=\alpha _{1}H_{1}(x),本轮强分类器sign(f_{1}(x))

t> 1时,分类函数f_{t}(x)=f_{t-1}(x)+\alpha _{t}H_{t}(x)=\sum_{i=1}^{t}\alpha _{i}H_{i}(x),本轮强分类器sign(f_{t}(x))

4)更新样本的权重

在前述弱分类器的分类下,样本的预测值与实际值可能不一致。在Adaboost算法中,会增加预测错误的样本的权重。为此,构造了如下的样本新权重:

w_{t+1,i}=\frac{w_{t,i}*exp\left \{ -\alpha_{t}y_{i}H_{t}(x_{i}) \right \}}{Z_{t}}i=1,2,...,N

其中Z_{t}是规范化因子,构建Z_{t}=\sum_{i=1}^{N}w_{t,i}exp\left \{ -\alpha _{t}y_{i}H_{t}(x_{i}) \right \}

可以看出Z_{t}w_{t+1,i}的分子部分的求和,如此\sum_{i=1}^{N}w_{t+1,i}=1,且可使得w_{t+1,i}的取值介于0到1之间。

规范化因子的表达式可以进行简化,Z_{t}=2\sqrt{e_{t}(1-{e_{t}})}

a.当样本分类正确时,y_{i}H_{t}(x_{i})=1,新的样本权重为

w_{t+1,i}=\frac{w_{t,i}*exp\left \{ -\alpha_{t}y_{i}H_{t}(x_{i}) \right \}}{Z_{t}}=\frac{w_{t,i}*exp\left \{ -\alpha _{t} \right \}}{Z_{t}}=\frac{w_{t,i}*exp\left \{ -\frac{1}{2}ln\frac{1-e_{t}}{e_{t}} \right \}}{Z_{t}}=\frac{w_{t,i}*exp\left \{ \ln(\frac{e_{t}}{1-e_{t}})^{\frac{1}{2}} \right \}}{Z_{t}}=\frac{w_{t,i}*\sqrt{\frac{e_{t}}{1-e_{t}}}}{Z_{t}}=\frac{w_{t,i}*\sqrt{\frac{e_{t}}{1-e_{t}}}}{2\sqrt{e_{t}(1-e_{t})}}=\frac{w_{t,i}}{2(1-e_{t})}

b.当样本分类错误时,y_{i}H_{t}(x_{i})=-1,新的样本权重为

w_{t+1,i}=\frac{w_{t,i}*exp\left \{ -\alpha_{t}y_{i}H_{t}(x_{i}) \right \}}{Z_{t}}=\frac{w_{t,i}*exp\left \{ \alpha _{t} \right \}}{Z_{t}}=\frac{w_{t,i}*exp\left \{ \frac{1}{2}ln\frac{1-e_{t}}{e_{t}} \right \}}{Z_{t}}=\frac{w_{t,i}*exp\left \{ \ln(\frac{1-e_{t}}{e_{t}})^{\frac{1}{2}} \right \}}{Z_{t}}=\frac{w_{t,i}*\sqrt{\frac{1-e_{t}}{e_{t}}}}{Z_{t}}=\frac{w_{t,i}*\sqrt{\frac{1-e_{t}}{e_{t}}}}{2\sqrt{e_{t}(1-e_{t})}}=\frac{w_{t,i}}{2(1-e_{t})}=\frac{w_{t,i}}{2{e_{t}}}

Tips:Z_{t}的简化过程

Z_{t}=\sum_{i=1}^{N}w_{t,i}exp\left \{ -\alpha _{t}y_{i}H_{t}(x_{i}) \right \}=

\sum_{i:y_{i}= H_{t}(x_{i})}^{}w_{t,i}exp\left \{ -\alpha _{t}y_{i}H_{t}(x_{i}) \right \}+\sum_{i:y_{i}\neq H_{t}(x_{i})}^{}w_{t,i}exp\left \{ -\alpha _{t}y_{i}H_{t}(x_{i}) \right \} =\sum_{i:y_{i}= H_{t}(x_{i})}^{}w_{t,i}exp\left \{ -\alpha _{t} \right \}+\sum_{i:y_{i}\neq H_{t}(x_{i})}^{}w_{t,i}exp\left \{ \alpha _{t} \right \}

=\sum_{i:y_{i}= H_{t}(x_{i})}^{}w_{t,i}exp\left \{ -\frac{1}{2}ln\frac{1-{e_{t}}}{e_{t}} \right \}+\sum_{i:y_{i}\neq H_{t}(x_{i})}^{}w_{t,i}exp\left \{ \frac{1}{2}ln\frac{1-{e_{t}}}{e_{t}} \right \}=\sum_{i:y_{i}= H_{t}(x_{i})}^{}w_{t,i}exp\left \{ ln(\frac{​{e_{t}}}{1-e_{t}})^{\frac{1}{2}} \right \}+\sum_{i:y_{i}\neq H_{t}(x_{i})}^{}w_{t,i}exp\left \{ ln(\frac{​{1-e_{t}}}{e_{t}})^{\frac{1}{2}} \right \}

=\sum_{i:y_{i}= H_{t}(x_{i})}^{}w_{t,i}\sqrt{\frac{e_{t}}{1-e_{t}}}+\sum_{i:y_{i}\neq H_{t}(x_{i})}^{}w_{t,i}\sqrt{\frac{1-e_{t}}{e_{t}}}

在计算w_{t+1,i}时,e_{t}已知,与i无关,并且由前述构造可知

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值