提升方法的基本思想是通过改变训练样本的权重学习多个分类器,并将这些线性分类器进行线性组合,提高分类性能。
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 \subseteq\{-1,1\}yi∈Y⊆{−1,1};弱学习算法。
输出:最终分类器G(n)G(n)G(n)。
-
初始化训练数据的权值分布
D1=(w11,...,w1i,...,w1N),w1i=1ND_1=(w_{11},...,w_{1i},...,w_{1N}),w_1i=\frac{1}{N}D1=(w11,...,w1i,...,w1N),w1i=N1 -
对m=1,2,...,Mm=1,2,...,Mm=1,2,...,M
- 使用具有权值分布DmD_mDm的训练集学习,得到基本分类器:
Gm(x):X⟶{−1,1}G_m(x):X\longrightarrow\{-1,1\}Gm(x):X⟶{−1,1} - 计算Gm(x)G_m(x)Gm(x)在训练集上的分类误差率 :
em=∑i=1NP(Gm(xi)≠yi)=∑i=1NwmiI(Gm(xi)≠yi)=∑Gm(xi)≠yiwmie_m=\sum_{i=1}^{N}P(G_m(x_i)\neq y_i)\\=\sum_{i=1}^{N}w_{mi}I(G_m(x_i)\neq y_i)\\=\sum_{G_m(x_i)\neq y_i}w_{mi}em=i=1∑NP(Gm(xi)=yi)=i=1∑NwmiI(Gm(xi)=yi)=Gm(xi)=yi∑wmi - 计算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 - 更新训练集的权值分布
Dm+1=(wm+1,1,...,wm+1,i,...,wm+1,N)D_{m+1}=(w_{m+1,1},...,w_{m+1,i},...,w_{m+1,N})Dm+1=(wm+1,1,...,wm+1,i,...,wm+1,N)
wm+1,i=wm,iZmexp(−αmyiGm(xi)),i=1,2,...,N①w_{m+1,i}=\frac{w_{m,i}}{Z_m}exp(-\alpha_{m}y_{i}G_{m}(x_i)),{i=1,2,...,N} \qquad \qquad ①wm+1,i=Zmwm,iexp(−αmyiGm(xi)),i=1,2,...,N①
其中ZmZ_mZm是规范化因子
Zm=∑i=1Nwm,iexp(−αmyiGm(xi))Z_m=\sum_{i=1}^{N}w_{m,i}exp(-\alpha_{m}y_{i}G_{m}(x_i))Zm=i=1∑Nwm,iexp(−αmyiGm(xi))
它使得Dm+1D_{m+1}Dm+1成为一个概率分布,即∑i=1Nwm,i=1\sum_{i=1}^{N}w_{m,i}=1∑i=1Nwm,i=1。
- 使用具有权值分布DmD_mDm的训练集学习,得到基本分类器:
-
构建基本分类器的线性组合
f(x)=∑m+1MαmGm(x)f(x)=\sum_{m+1}^{M}\alpha_{m}G_{m}(x)f(x)=m+1∑MαmGm(x)
得到最终分类器
G(x)=sign(f(x))=sign(∑m=1MαmGm(x))G(x)=sign(f(x))=sign(\sum_{m=1}^{M}\alpha_{m}G_{m}(x))G(x)=sign(f(x))=sign(m=1∑MαmGm(x))
注:式①可写成
wm+1,i={wm,iZme−αm,Gm(xi)=yiwm,iZmeαm,Gm(xi)≠yiw_{m+1,i}=\left\{\begin{aligned}\frac{w_{m,i}}{Z_m}e^{-\alpha_m},G_{m}(x_i)=y_i\\\frac{w_{m,i}}{Z_m}e^{\alpha_m},G_{m}(x_i)\neq y_i\\\end{aligned} \right.wm+1,i=⎩⎨⎧Zmwm,ie−αm,Gm(xi)=yiZmwm,ieαm,Gm(xi)=yi
可知误分类样本在每一轮学习后权重会被放大e2αm=1−ememe^{2\alpha_m}=\frac{1-e_m}{e_m}e2αm=em1−em倍,系数αm\alpha_mαm表示分类器Gm(x)G_m(x)Gm(x)的重要性,所有αm\alpha_mαm之和并不等于1。