AdaBoost,是英文"Adaptive Boosting"(自适应增强),它的自适应在于:前一个基本分类器分错的样本会得到加强,加权后的全体样本再次被用来训练下一个基本分类器。同时,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数。
AdaBoost算法
输入:训练数据集KaTeX parse error: Undefined control sequence: \cal at position 51: …_N)\}, x_i\in \̲c̲a̲l̲ ̲X\sube \R^n, 弱学习方法
输出:最终分类器 G ( x ) G(x) G(x)
步骤:
(1) 初始化训练数据的权值分布 D 1 = ( w 11 , ⋯ , w 1 i , ⋯ , w 1 N ) , w 1 i = 1 N , i = 1 , 2 , … , N D_1=(w_{11},\cdots,w_{1i},\cdots,w_{1N}),w_{1i}=\frac{1}{N},i=1,2,\ldots,N D1=(w11,⋯,w1i,⋯,w1N),w1i=N1,i=1,2,…,N
(2) 对于第m次迭代( m = 1 , 2 , … , M m = 1,2, \ldots,M m=1,2,…,M):
(a) 使用具有权值分布 D m D_m Dm的训练数据集学习,得到基本的分类器:
G m ( x ) : X − > { − 1 , + 1 } G_m(x):\mathcal X->\{-1,+1\} Gm(x):X−>{ −1,+1} (b) 求 G m ( x ) G_m(x) Gm(x)在训练集上的分类误差率 :
e m = ∑ i = 1 N P ( G m ( x i ) ≠ y i ) = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) e_m=\sum_{i=1}^{N}P(G_m(x_i)\ne y_i)=\sum_{i=1}^{N}w_{mi}I(G_m(x_i)\ne y_i) em=i=1∑NP(Gm(xi)=yi)=i=1∑NwmiI(Gm(xi)=yi)
© 计算 G m ( x ) G_m(x) Gm(x)的系数:
α m = 1 2 l o g 1 − e m e m \alpha_m=\frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1−em (d) 更新训练集的权值分布:
w m + 1 , i = w m i Z m e x p ( − α m y i G m ( x i ) ) w_{m+1,i}=\frac{w_{mi}}{Z_m}exp(-\alpha_my_iG_m(x_i)) wm+1,i=Zmwmiexp(−αmyiGm(xi)) 其中, Z m Z_m Zm 是规范化因子, Z m = ∑ i = 1 N w m i e x p ( − α m y i G m ( x i ) ) Z_m=\sum_{i=1}^Nw_{mi}exp(-\alpha_my_iG_m(x_i)) Zm=∑i=1Nwmiexp(−αmyiGm(xi))
(3) 构建基本分类器的线性组合:
f ( x ) = ∑ m = 1 M α m G m ( x ) f(x)=\sum_{m=1}^M\alpha_mG_m(x) f(x)=m=1∑MαmGm(x)(4) 最终分类器:
G ( x ) = s i g n ( f ( x ) ) = s i g n ( ∑ m = 1 M α m G m ( x ) ) G(x)=sign(f(x))=sign(\sum_{m=1}^M\alpha_mG_m(x)) G(x)=sign(f(x))=sign(m=1∑MαmGm(x))
说明:
步骤(1)假设训练数据具有均匀的权值分布,即每个训练样本在基本分类器的学习中作用相同,这一假设保证第一步能够在原始数据上学习基本分类器 G 1 ( x ) G_1(x) G1(x)。
步骤(2)AdaBoost 反复学习基本分类器,在每一轮 m = 1 , 2 … , M m=1,2\ldots,M m=1,2…,M 顺次执行下列操作:
(a)使用当前分布 D m D_m Dm 加权的训练数据集,学习基本分类器 G m ( x ) G_m(x) Gm(x)。
(b)计算基本分类器 G m ( x ) G_m(x) Gm(x) 在加权训练集上的误分类误差:
e m = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) = ∑ G m ( x i ) ≠ y i w m i e_m=\sum_{i=1}^{N}w_{mi}I(G_m(x_i)\ne y_i) = \sum_{G_m(x_i) \ne y_i} w_{mi} em=i=1∑NwmiI(Gm(xi)=yi)=Gm(xi)=yi∑wmi
误差率是指被 G m ( x ) G_m(x) Gm(x)误分类样本的权值之和。
(c)计算基本分类器 G m ( x ) G_m(x) Gm(x)的系数 α m \alpha_m αm。由:
α m = 1 2 l o g 1 − e m e m \alpha_m=\frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1−em
可知,当 e m ≤ 1 2 e_m \leq \frac{1}{2} em≤21 时, α m ≥ 0 \alpha_m \geq 0 αm≥0,且 α m \alpha_m αm 随着 e m e_m em 的减小而增大,所以分类误差率越小的基本分类器在最终分类器中的作用越大。
(d)更新训练数据的权值分布为下一轮做准备。式 w m + 1 , i = w m i Z m e x p ( − α m y i G m ( x i ) ) w_{m+1,i}=\frac{w_{mi}}{Z_m}exp(-\alpha_my_iG_m(x_i)) wm+1,i=Zmwmiexp(−αmyiGm(xi))中:
当 y i = G m ( x i ) y_i=G_m(x_i) yi=Gm(xi)时, y i G m ( x i ) = 1 y_iG_m(x_i)=1 yiGm(xi)=1
当 y i ≠ G m ( x i ) y_i\ne G_m(x_i) yi=Gm(xi)时, y i G m ( x i ) = − 1 y_iG_m(x_i)=-1 yiGm(xi)=−1
所以有:
w m + 1 , i = { w m i Z m e − α m y i = G m ( x i ) w m i Z m e α m y i ≠ G m ( x i ) w_{m+1,i}=\begin{cases} \frac{w_{mi}}{Z_m}e^{-\alpha_m} \quad y_i=G_m(x_i) \\\frac{w_{mi}}{Z_m}e^{\alpha_m} \qquad y_i\ne G_m(x_i) \end{cases} wm+1,i={
Zmwmie−αmyi=Gm(xi)Zmwmieα