其他分享
首页 > 其他分享> > AdaBoost二分类

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=1∑M​αm​fm​(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=1∑M​αm​fm​(x))​(2)
其中 y y y, f m ( x ) ∈ { + 1 , − 1 } f_m(x)\in\{+1, -1\} fm​(x)∈{+1,−1}。

假设经过 m − 1 m-1 m−1次迭代,得到
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} Fm−1​(x)=t−1∑m​αt​ft​(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=1∑N​exp(−y(n)(Fm−1​(x(n))+αm​fm​(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)(Fm−1​(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=1∑N​wm(n)​exp(−αm​y(n)fm​(x(n)))(5)
将上式在 − α m y ( n ) f m ( x ( n ) ) -\alpha_my^{(n)}f_m(x^{(n)}) −αm​y(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=1∑N​wm(n)​(1−αm​y(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))​∝−αm​n=1∑N​wm(n)​y(n)fm​(x(n))∝−αm​n=1∑N​wm(n)​(1−2I(y(n)​=fm​(x(n)))∝αm​n=1∑N​wm(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=1N​wm(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​)+ϵm​exp(α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​=21​logϵm​1−ϵm​​(11)
AdaBoost的二分类算法总结如下
在这里插入图片描述

标签:text,sum,分类,分类器,AdaBoost,exp,alpha,fm
来源: https://blog.csdn.net/qq_40019838/article/details/120937489