基本常用的几种提升方法
而本次所说的就为AdaBoost方法。
AdaBoost方法基本思想
AdaBoost方法是一种常用的统计学习方法,在分类问题中,它通过改变训练样本权重,学习多个分类器,并将这些分类器进行线性组合,以提高分类性能。实际上,这就是“三个臭皮匠顶个诸葛亮”的道理。
AdaBoost算法
对于提升方法,主要有两个问题:一是在每一轮如何改变训练数据的权值或概率分布;而是如何将弱分类器组合成一个强分类器。这在下面算法中将会介绍。
假定一个二分类数据集
T={(x1,y1),(x2,y2),...,(xN,yN)}T = \{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1,y1),(x2,y2),...,(xN,yN)}
其中,实例xi∈X⊆Rnx_i \in X \subseteq R^nxi∈X⊆Rn,标记yi∈Y={−1,1}y_i \in Y=\{-1,1\}yi∈Y={−1,1}
算法:
输入:训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}T = \{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1,y1),(x2,y2),...,(xN,yN)};弱学习算法;
输出:最终分类器G(x)G(x)G(x).
(1)初始化训练数据的权值分布
D1=(w11,...,w1i,...,w1N),w1i=1N,i=1,2,...,ND_1=(w_{11},...,w_{1i},...,w_{1N}), w_{1i}=\frac{1}{N},i=1,2,...,ND1=(w11,...,w1i,...,w1N),w1i=N1,i=1,2,...,N
(2)对m=1,2,…,M
(a)使用具有权值分布DmD_mDm的训练数据集学习,得到基本分类器
Gm(x):X→{−1,1}G_m(x) : X \rightarrow \{-1,1\}Gm(x):X→{−1,1}
(b)计算Gm(x)G_m(x)Gm(x)在训练数据集上的分类误差率
em=P(Gm(xi)≠yi)=Σi=1NwmiI(Gm(xi)≠yi)e_m = P(G_m(x_i) \ne y_i) = \Sigma_{i=1}^Nw_{mi}I(G_m(x_i)\ne y_i)em=P(Gm(xi)=yi)=Σi=1NwmiI(Gm(xi)=yi)
(c)计算Gm(x)G_m(x)Gm(x)的系数
αm=12log1−emem\alpha_m = \frac{1}{2}log\frac{1-e_m}{e_m}αm=21logem1−em
这里对数为自然对数
(d)更新训练数据集的权值分布
Dm+1=(wm+1,1,...,wm+1,i,...,wm+1,N)wm+1,i=wmiZmexp(−αmyiGm(xi)),i=1,2,...,ND_{m+1}=(w_{m+1,1},...,w_{m+1,i},...,w_{m+1,N})\\
w_{m+1,i}=\frac{w_{mi}}{Z_m}exp(-\alpha_my_iG_m(x_i)),i=1,2,...,NDm+1=(wm+1,1,...,wm+1,i,...,wm+1,N)wm+1,i=Zmwmiexp(−αmyiGm(xi)),i=1,2,...,N
这里ZmZ_mZm为规范化因子
Zm=Σi=1Nwmiexp(−αmyiGm(x))Z_m=\Sigma_{i=1}^Nw_{mi}exp(-\alpha_my_iG_m(x))Zm=Σi=1Nwmiexp(−αmyiGm(x))
它使Dm+1D_{m+1}Dm+1成为一个概率分布。
(3)构建基本分类器线性组合
f(x)=Σm=1MαmGm(x)f(x)=\Sigma_{m=1}^M\alpha_mG_m(x)f(x)=Σm=1MαmGm(x)
得到最终分类器
G(x)=sign(f(x))=sign(Σm=1MαmGm(x))G(x)=sign(f(x))=sign(\Sigma_{m=1}^M\alpha_mG_m(x))G(x)=sign(f(x))=sign(Σm=1MαmGm(x))
算法说明:
步骤(1)中,首先假设训练数据集具有均匀分布的权值,即每个训练样本在基本分类器的学习中作用相同。
步骤(2)AdaBoost反复学习基本分类器,在每一轮m=1,2,…,M顺序执行下列操作:
(a)使用当前分布DmD_mDm加权的训练数据集,学习基本分类器Gm(x)G_m(x)Gm(x)。
(b)计算基本分类器Gm(x)G_m(x)Gm(x)在加权训练集上的分类误差率:
em=P(Gm(xi)≠yi)=ΣGm(xi)≠yiwmie_m=P(G_m(x_i) \ne y_i) = \Sigma_{G_m(x_i) \ne y_i}w_{mi}em=P(Gm(xi)=yi)=ΣGm(xi)=yiwmi
这里,wmiw_{mi}wmi表示第m轮中第i个实例的权值,Σi=1Nwmi=1.\Sigma_{i=1}^Nw_{mi}=1.Σi=1Nwmi=1.这表明,Gm(x)G_m(x)Gm(x)在加权训练数据集上的分类误差率是被Gm(x)G_m(x)Gm(x)误分类样本的权值之和。
(c)计算基本分类器Gm(x)G_m(x)Gm(x)的系数αm\alpha_mαm。αm表示Gm(x)\alpha_m表示G_m(x)αm表示Gm(x)在最终分类器中的重要性,当em≤12时,αm≥0,e_m \le \frac{1}{2}时,\alpha_m\ge 0,em≤21时,αm≥0,并且αm随着em\alpha_m随着e_mαm随着em的减小而增大,所以分类误差率越小的基本分类器在最终分类器中的作用越大。
(d)更新训练集权值分布,新一轮权值可写成:
wm+1,i={wmiZmeαm,Gm(xi)≠yiwmiZme−αm,Gm(xi)=yiw_{m+1,i}=\{_{\frac{w_{mi}}{Z_m}e^{\alpha_m},G_m(x_i) \ne y_i}^{\frac{w_{mi}}{Z_m}e^{-\alpha_m}, G_m(x_i) = y_i}wm+1,i={Zmwmieαm,Gm(xi)=yiZmwmie−αm,Gm(xi)=yi
由此可知,被基本分类器Gm(x)G_m(x)Gm(x)误分类样本的权值得以扩大,而正确分类的样本权值得以缩小。因此,误分类样本将在下一轮学习中起更大作用。
(3)线性组合f(x)实现M个基本分类器的加权表决。系数αm\alpha_mαm表示基本分类器Gm(x)G_m(x)Gm(x)的重要性,但是所有αm\alpha_mαm之和并不等于1.