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