Boosting方法是使用同一组数据集进行反复学习,得到一系列简单模型,然后组合这些模型构成一个预测性能十分强大的机器学习模型,Boosting的特点:
Bootsing意为“增强、提升”,首先引入概念:
在概率近似正确学习的框架中,
弱可学习(weakly learnable):存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略好,那么就称这个概念是弱科学系的;
强可学习(strongly learnalbe):存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的;
Robert E. Schapire证明强可学习与弱可学习是等价的,也就是说,在概率近似正确学习的框架下,一个概念是强可学习与弱可学习互为充分必要条件。
关于如何由“弱”变“强”,有很多算法被陆续提出,对于提升算法来说,有两个问题需要回答:
接下来我们介绍Boosting提升算法中最具代表性的AdaBoost(adaptive boosting)算法,也被成为自适应增强算法。
算法内容如下:
训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) } T = \left \{ (x_{1},y_{1}),(x_{2},y_{2}),\dots,(x_{N},y_{N}) \right \} T={ (x1,y1),(x2,y2),…,(xN,yN)}, x i ∈ χ ⊆ R n x_{i}\in \chi \subseteq R^n xi∈χ⊆Rn, y i = { − 1 , + 1 } y_{i} = \left \{ -1,+1 \right \} yi={ −1,+1};
最终分类器 G ( x ) G(x) G(x)
D 1 = ( w 11 , … , w 1 i , … , w 1 N ) , w 1 i = 1 N , i = 1 , 2 , … , N D_{1} = (w_{11},\dots,w_{1i},\dots,w_{1N} ),w_{1i}=\frac{1}{N},i=1,2,\dots,N D1=(w11,…,w1i,…,w1N),w1i=N1,i=1,2,…,N
e m = P ( G m ( x i ) ≠ y i ) = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) e_{m} = P(G_{m}(x_{i})\ne y_{i}) = \sum_{i=1}^{N}w_{mi}I(G_{m}(x_{i})\ne y_{i}) em=P(Gm(xi)=yi)=i=1∑NwmiI(Gm(xi)=yi)
α m = 1 2 log 1 − e m e m \alpha _{m} = \frac{1}{2} \log \frac{1-e_{m}}{e_{m}} αm=21logem1−em
D m + 1 = ( w m + 1 , 1 , … , w m + 1 , i , … , w m + 1 , N ) D_{m+1} = (w_{m+1,1},\dots,w_{m+1,i},\dots,w_{m+1,N} ) Dm+1=(wm+1,1,…,wm+1,i,…,wm+1,N)
w m + 1 , i = w m i Z m exp ( − α m y i G m ( x i ) ) w_{m+1,i} = \frac{w_{mi}}{Z_{m}} \exp (-\alpha_{m}y_{i}G_{m}(x_{i})) wm+1,i=Zmwmiexp(−αmyiGm(xi))
Z m Z_{m} Zm是规范化因子,表达式为:
Z m = ∑ i = 1 N w m i exp ( − α m y i G m ( x i ) ) Z_{m} = \sum_{i=1}^{N} w_{mi}\exp (-\alpha_{m}y_{i}G_{m}(x_{i})) Zm=i=1∑Nwmiexp(−αmyiGm(xi))
G ( x ) = s i g n ( f ( x ) ) = s i g n [ ∑ m = 1 M α m G m ( x ) ] G(x) = sign(f(x))=sign\left [ \sum_{m=1}^{M}\alpha_{m}G_{m}(x)\right ] G(x)=sign(f(x))=sign[m=1∑MαmGm(x)]
这里有一个小技巧,就是 y i h ( x i ) y_{i}h(x_{i}) yih(xi)可以分情况讨论,无需展开。
这里的标红的地方是此处用Excel功能不太熟悉,但是可以完全通过条件判断进行自动化求解。