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) 初始化训练数据的权值分布 D1=(w11,⋯ ,w1i,⋯ ,w1N),w1i=1N,i=1,2,…,ND_1=(w_{11},\cdots,w_{1i},\cdots,w_{1N}),w_{1i}=\frac{1}{N},i=1,2,\ldots,ND1=(w11,⋯,w1i,⋯,w1N),w1i=N1,i=1,2,…,N
(2) 对于第m次迭代(m=1,2,…,Mm = 1,2, \ldots,Mm=1,2,…,M):
(a) 使用具有权值分布DmD_mDm的训练数据集学习,得到基本的分类器:
Gm(x):X−>{ −1,+1} G_m(x):\mathcal X->\{-1,+1\} Gm(x):X−>{ −1,+1} (b) 求Gm(x)G_m(x)Gm(x)在训练集上的分类误差率 :
em=∑i=1NP(Gm(xi)≠yi)=∑i=1NwmiI(Gm(xi)≠yi) 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)
© 计算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) 更新训练集的权值分布:
wm+1,i=wmiZmexp(−αmyiGm(xi)) w_{m+1,i}=\frac{w_{mi}}{Z_m}exp(-\alpha_my_iG_m(x_i)) wm+1,i=Zmwmiexp(−αmyiGm(xi)) 其中,ZmZ_mZm 是规范化因子,Zm=∑i=1Nwmiexp(−αmyiGm(xi))Z_m=\sum_{i=1}^Nw_{mi}exp(-\alpha_my_iG_m(x_i))Zm=∑i=1Nwmiexp(−αmyiGm(xi))
(3) 构建基本分类器的线性组合:
f(x)=∑m=1MαmGm(x) f(x)=\sum_{m=1}^M\alpha_mG_m(x) f(x)=m=1∑MαmGm(x)(4) 最终分类器:
G(x)=sign(f(x))=sign(∑m=1MαmGm(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)假设训练数据具有均匀的权值分布,即每个训练样本在基本分类器的学习中作用相同,这一假设保证第一步能够在原始数据上学习基本分类器G1(x)G_1(x)G1(x)。
步骤(2)AdaBoost 反复学习基本分类器,在每一轮m=1,2…,Mm=1,2\ldots,Mm=1,2…,M 顺次执行下列操作:
(a)使用当前分布DmD_mDm 加权的训练数据集,学习基本分类器Gm(x)G_m(x)Gm(x)。
(b)计算基本分类器Gm(x)G_m(x)Gm(x) 在加权训练集上的误分类误差:
em=∑i=1NwmiI(Gm(xi)≠yi)=∑Gm(xi)≠yiwmi 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
误差率是指被Gm(x)G_m(x)Gm(x)误分类样本的权值之和。
(c)计算基本分类器Gm(x)G_m(x)Gm(x)的系数αm\alpha_mαm。由:
αm=12log1−emem \alpha_m=\frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1−em
可知,当em≤12e_m \leq \frac{1}{2}em≤21 时,αm≥0\alpha_m \geq 0αm≥0,且αm\alpha_mαm 随着eme_mem 的减小而增大,所以分类误差率越小的基本分类器在最终分类器中的作用越大。
(d)更新训练数据的权值分布为下一轮做准备。式wm+1,i=wmiZmexp(−αmyiGm(xi))w_{m+1,i}=\frac{w_{mi}}{Z_m}exp(-\alpha_my_iG_m(x_i))wm+1,i=Zmwmiexp(−αmyiGm(xi))中:
当yi=Gm(xi)y_i=G_m(x_i)yi=Gm(xi)时,yiGm(xi)=1y_iG_m(x_i)=1yiGm(xi)=1
当yi≠Gm(xi)y_i\ne G_m(x_i)yi=Gm(xi)时,yiGm(xi)=−1y_iG_m(x_i)=-1yiGm(xi)=−1
所以有:
wm+1,i={
wmiZme−αmyi=Gm(xi)wmiZmeαmyi≠Gm(xi) 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)Z