提升方法需要回答两个问题:
- 一是在每一轮如何改变训练数据的权值和概率分布
- 二是如何将弱分类器组合成一个强分类器。
先对上述问题做简单的回答:
- 提高那些被前一轮弱分类器错误分类样本的权值(因为它们的数量少。需要在下一轮训练的时候给予他们更大的关注)。
- 加权多数表决,误差率小的分类器权值比较大。
Adaboost
输入: 训练集T=(x1,y1),(x2,y2),(x3,y3),...,(xN,yN)T=(x1,y1),(x2,y2),(x3,y3),...,(xN,yN), 其中x∈XRn,yi∈Y={+1,−1}x∈XRn,yi∈Y={+1,−1} ; 弱学习算法
输出:最终分类器G(x)
- 初始化权值分布D1=(w1,1,...,w1,i,...,w1,N)D1=(w1,1,...,w1,i,...,w1,N)
对 m = 1, … , M
1) 训练弱分类器GiGi
2) 计算当前弱学习器的误差率emem:em=P(Gm(xi)≠yi)=∑Gm(xi≠yi)wmiem=P(Gm(xi)≠yi)=∑Gm(xi≠yi)wmiemem的本质是被Gm(x)Gm(x)误分类样本分类器的G_i(x).
3) 计算权值αmαm,αm=12log1−ememαm=12log1−emem可以看出,emem越大,则αmαm越小(误差大的权重小)。
4) 更新数据集的权值分布
Dm+1=(wm+1,1,...,wm+1,i,...,wm+1,N)Dm+1=(wm+1,1,...,wm+1,i,...,wm+1,N)wm+1,i=wmiZmexp(−αmyiGm(xi)),i=1,2,3,...Nwm+1,i=wmiZmexp(−αmyiGm(xi)),i=1,2,3,...NZm=∑j=1Nwmjexp(−αmyjGm(xj))Zm=∑j=1Nwmjexp(−αmyjGm(xj))
ZmZm是归一化因子,它使Dm+1Dm+1 成为一个概率分布
wm+1,iwm+1,i 还可以写成:
wm+1,i=wmiZmexp(−αm),Gm(xi)=yiwm+1,i=wmiZmexp(−αm),Gm(xi)=yi
wm+1,i=wmiZmexp(αm),Gm(xi)≠yiwm+1,i=wmiZmexp(αm),Gm(xi)≠yi
所以,我们可以再次看出,误分类的样本的权值比正确分类的样本权值高。误分类样本的权值被放大e2αm=em1−eme2αm=em1−em- 构建弱分类器的组合 f(x)=∑mMαmGm(x)f(x)=∑mMαmGm(x)
αmαm将决定不同分类器的权重 - 4.