集成学习(二):AdaBoost算法解释
1. 前言
在之前的博客中讲解了AdaBoost算法的原理,为了能够更加直观理解AdaBoost算法,常用的解释模型便是使用加法模型。
2. 加法模型解释
首先定义AdaBoost的加法模型为:
f(x)=∑m=1MαmGm(x) f ( x ) = ∑ m = 1 M α m G m ( x )
其中 αm α m 是基函数的系数, Gm(x) G m ( x ) 为基函数。则就可以使用指数函数定义损失函数
L(y,f(x))=exp(−yf(x)) L ( y , f ( x ) ) = e x p ( − y f ( x ) )
假设经过 m−1 m − 1 次迭代之后得到的模型为:
fm−1(x)=fm−2(x)+αm−1Gm−1(x)=α1G1(x)+…+αm−1Gm−1(x) f m − 1 ( x ) = f m − 2 ( x ) + α m − 1 G m − 1 ( x ) = α 1 G 1 ( x ) + … + α m − 1 G m − 1 ( x )
得到第 m m 次的迭代得到 αm,Gm(x)和fm(x) α m,G m( x )和fm( x )
fm(x)=fm−1(x)+αmGm(x) f m ( x ) = f m − 1 ( x ) + α m G m ( x )
目标是使前向分布算法得到的 αm,Gm(x)和fm(x) α m , G m ( x ) 和 f m ( x ) 在训练数据集T上的指数损失函数最小化,即是
(αm,Gm(x))=argmina,m∑i=1Nexp[−yi(fm−1(xi)+αG(xi))]=argmina,m∑i=1Nwmiexp(αG(xi))] ( α m , G m ( x ) ) = a r g min a , m ∑ i = 1 N e x p [ − y i ( f m − 1 ( x i ) + α G ( x i ) ) ] = a r g min a , m ∑ i = 1 N w m i e x p ( α G ( x i ) ) ]
其中
wmi=exp(−yifm−1(xi)) w m i = e x p ( − y i f m − 1 ( x i ) )
上式中最小化之后的 α∗m,G∗m(x) α m ∗ , G m ∗ ( x ) 就是AdaBoost算法得到的 αm,Gm(x) α m , G m ( x ) 。则对其进行求解就分为了两步,先求解 G∗m(x) G m ∗ ( x ) :
G∗m(x)argminG∑i=1NwmiI(yi≠G(xi)) G m ∗ ( x ) a r g min G ∑ i = 1 N w m i I ( y i ≠ G ( x i ) )
之后求解 α∗m α m ∗ :
∑i=1Nwmiexp(αG(xi))]=∑yi=Gm(xi)wmie−α+∑yi≠Gm(xi)wmieα=(eα−e−α)∑i=1NwmiI(yi≠G(xi)) ∑ i = 1 N w m i e x p ( α G ( x i ) ) ] = ∑ y i = G m ( x i ) w m i e − α + ∑ y i ≠ G m ( x i ) w m i e α = ( e α − e − α ) ∑ i = 1 N w m i I ( y i ≠ G ( x i ) )
将已经求得的 G∗m(x) G m ∗ ( x ) 带入上式,对 α α 求导并使倒数为0,即可得到让目标函数最小的 α α
α∗m=12log1+emem α m ∗ = 1 2 l o g 1 + e m e m
其中 em e m 是分类误差率:
em=∑Ni=1wmiI(yi≠G(xi))∑Ni=1wmi e m = ∑ i = 1 N w m i I ( y i ≠ G ( x i ) ) ∑ i = 1 N w m i
这里基函数权值系数的更新是与AdaBoost算法一致的,对于样本权值系数的更新是这样的
wm+1,i=wm,iexp(−yiαmGm(x)) w m + 1 , i = w m , i e x p ( − y i α m G m ( x ) )
3. 参考
- 统计学习方法——李航
还没有评论,来说两句吧...