AdaBoost二分类

AdaBoost二分类

AdaBoost算法是一个加性模型
F ( x ) = ∑ m = 1 M α m f m ( x ) (1) F(x)=\sum_{m=1}^{M}\alpha_mf_m(x)\tag{1} F(x)=m=1Mαmfm(x)(1)
其中 f m ( x ) f_m(x) fm(x)称为弱分类器基分类器 α m \alpha_m αm为弱分类器的集成权重, F ( x ) F(x) F(x)称为强分类器

AdaBoost采用迭代式的训练方法。假设已经训练了 m m m个弱分类器,在训练第 m + 1 m+1 m+1个弱分类器时,增加已有弱分类器分错样本的权重,使得第 m + 1 m+1 m+1个弱分类器更关注已有弱分类器分错的样本,因此AdaBoost是通过改变数据的分布来提高弱分类器的差异。

二分类时,其损失函数定义为
L ( F ) = exp ( − y F ( x ) ) = exp ( − y ∑ m = 1 M α m f m ( x ) ) (2) \begin{aligned} \mathcal L(F)&=\text{exp}(-yF(x))\\ &=\text{exp}(-y\sum_{m=1}^{M}\alpha_mf_m(x)) \end{aligned}\tag{2} L(F)=exp(yF(x))=exp(ym=1Mαmfm(x))(2)
其中 y y y f m ( x ) ∈ { + 1 , − 1 } f_m(x)\in\{+1, -1\} fm(x){+1,1}

假设经过 m − 1 m-1 m1次迭代,得到
F m − 1 ( x ) = ∑ t − 1 m α t f t ( x ) (3) F_{m-1}(x)=\sum_{t-1}^m\alpha_tf_t(x)\tag{3} Fm1(x)=t1mαtft(x)(3)
m m m次迭代是找到一个 α m \alpha_m αm f m ( x ) f_m(x) fm(x)使得下面的损失函数最小
L ( α m , f m ( x ) ) = ∑ n = 1 N exp ( − y ( n ) ( F m − 1 ( x ( n ) ) + α m f m ( x ( n ) ) ) ) (4) \mathcal L(\alpha_m,f_m(x))=\sum_{n=1}^N\text{exp}(-y^{(n)}(F_{m-1}(x^{{(n)}})+\alpha_mf_m(x^{(n)})))\tag{4} L(αm,fm(x))=n=1Nexp(y(n)(Fm1(x(n))+αmfm(x(n))))(4)
w m ( n ) = exp ( − y ( n ) ( F m − 1 ( x ( n ) ) ) w_m^{(n)}=\text{exp}(-y^{(n)}(F_{m-1}(x^{{(n)}})) wm(n)=exp(y(n)(Fm1(x(n)))表示 x ( n ) x^{(n)} x(n)在第 m m m次迭代时的样本权重,损失函数可以写为
L ( α m , f m ( x ) ) = ∑ n = 1 N w m ( n ) exp ( − α m y ( n ) f m ( x ( n ) ) ) (5) \mathcal L(\alpha_m,f_m(x))=\sum_{n=1}^Nw_m^{(n)}\text{exp}(-\alpha_my^{(n)}f_m(x^{(n)}))\tag{5} L(αm,fm(x))=n=1Nwm(n)exp(αmy(n)fm(x(n)))(5)
将上式在 − α m y ( n ) f m ( x ( n ) ) -\alpha_my^{(n)}f_m(x^{(n)}) αmy(n)fm(x(n))处二阶泰勒展开,有
L ( α m , f m ( x ) ) = ∑ n = 1 N w m ( n ) ( 1 − α m y ( n ) f m ( x ( n ) ) + 1 2 α m 2 ) (6) \mathcal L(\alpha_m,f_m(x))=\sum_{n=1}^Nw_m^{(n)}(1-\alpha_my^{(n)}f_m(x^{(n)})+\frac{1}{2}\alpha_m^2)\tag{6} L(αm,fm(x))=n=1Nwm(n)(1αmy(n)fm(x(n))+21αm2)(6)
首先求解弱分类器 f m ( x ) f_m(x) fm(x),有
L ( α m , f m ( x ) ) ∝ − α m ∑ n = 1 N w m ( n ) y ( n ) f m ( x ( n ) ) ∝ − α m ∑ n = 1 N w m ( n ) ( 1 − 2 I ( y ( n ) ≠ f m ( x ( n ) ) ) ∝ α m ∑ n = 1 N w m ( n ) I ( y ( n ) ≠ f m ( x ( n ) ) ) (7) \begin{aligned} \mathcal L(\alpha_m,f_m(x))&\propto-\alpha_m\sum_{n=1}^Nw_m^{(n)}y^{(n)}f_m(x^{(n)})\\ &\propto-\alpha_m\sum_{n=1}^Nw_m^{(n)}(1-2\text{I}(y^{(n)}\neq f_m(x^{(n)}))\\ &\propto\alpha_m\sum_{n=1}^Nw_m^{(n)}\text{I}(y^{(n)}\neq f_m(x^{(n)})) \end{aligned}\tag{7} L(αm,fm(x))αmn=1Nwm(n)y(n)fm(x(n))αmn=1Nwm(n)(12I(y(n)=fm(x(n)))αmn=1Nwm(n)I(y(n)=fm(x(n)))(7)
α m > 0 \alpha_m>0 αm>0,最优的分类器 f m ( x ) f_m(x) fm(x)是使得在样本权重为 w m ( n ) w_m^{(n)} wm(n)时加权错误率最小的分类器,可以使用基学习器求得。

得到 f m ( x ) f_m(x) fm(x)后,公式 ( 5 ) (5) (5)可以改写为
L ( α m , f m ( x ) ) = ∑ y ( n ) = f m ( x ( n ) ) w m ( n ) exp ( − α m ) + ∑ y ( n ) ≠ f m ( x ( n ) ) w m ( n ) exp ( α m ) (8) \mathcal L(\alpha_m,f_m(x))=\sum_{y^{(n)}=f_m(x^{(n)})}w_m^{(n)}\text{exp}(-\alpha_m)+\sum_{y^{(n)}\neq f_m(x^{(n)})}w_m^{(n)}\text{exp}(\alpha_m)\tag{8} L(αm,fm(x))=y(n)=fm(x(n))wm(n)exp(αm)+y(n)=fm(x(n))wm(n)exp(αm)(8)

ϵ m = ∑ y ( n ) ≠ f m ( x ( n ) ) w m ( n ) ∑ n = 1 N w m ( n ) (9) \epsilon_m=\frac{\sum_{y^{(n)}\neq f_m(x^{(n)})}w_m^{(n)}}{\sum_{n=1}^Nw_m^{(n)}}\tag{9} ϵm=n=1Nwm(n)y(n)=fm(x(n))wm(n)(9)
表示 f m ( x ) f_m(x) fm(x)的加权错误率,则公式 ( 8 ) (8) (8)可以改写为
L ( α m , f m ( x ) ) ∝ ( 1 − ϵ m ) exp ( − α m ) + ϵ m exp ( α m ) (10) \mathcal L(\alpha_m,f_m(x))\propto(1-\epsilon_m)\text{exp}(-\alpha_m)+\epsilon_m\text{exp}(\alpha_m)\tag{10} L(αm,fm(x))(1ϵm)exp(αm)+ϵmexp(αm)(10)
令上式关于 α m \alpha_m αm的导数为0,得到
α m = 1 2 log 1 − ϵ m ϵ m (11) \alpha_m=\frac{1}{2}\text{log}\frac{1-\epsilon_m}{\epsilon_m}\tag{11} αm=21logϵm1ϵm(11)
AdaBoost的二分类算法总结如下
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值