AdaBoost算法
输入:训练数据集T={
(x1,y1),(x2,y2),…,(xN,yN)}T={
(x1,y1),(x2,y2),…,(xN,yN)},其中xi∈X⊆Rnxi∈X⊆Rn,yi∈{
−1,+1}yi∈{
−1,+1};弱学习算法;
输出:最终分类器G(x)G(x)
(1)初始化训练数据集的权值分布。我们假设训练数据集具有均匀的权值分布,也就是说每个训练样本在基分类器的学习中作用相同。
D(1)=(w(1)1,w(1)2,…,w(1)N),w(1)i=1N,i=1,2,…,ND(1)=(w1(1),w2(1),…,wN(1)),wi(1)=1N,i=1,2,…,N
每个w的上标表示当前迭代次数,与D的下标保持一致;w的下标表示第几个权值,与位置保持一致。
(2)对 m=1,2,…,Mm=1,2,…,M (M表示迭代次数,每迭代一次产生一个基学习器,最终生成 MM 个学习器)
(a)使用具有权值分布 的训练数据集学习,得到基分类器
Gm(x):X→{
−1,+1}Gm(x):X→{
−1,+1}
(b)计算 Gm(x)Gm(x) 在训练数据集上的分类误差
errm=P(Gm(xi)≠yi)=∑i=1Nw(m)iI(Gm(xi)≠yi)errm=P(Gm(xi)≠yi)=∑i=1Nwi(m)I(Gm(xi)≠yi)
这里, w(m)iwi(m) 表示第 mm 轮迭代中第 个实例的权值, ∑Ni=1w(m)i=1∑i=1Nwi(m)=1 。这说明 Gm(x)Gm(x) 在带权重的训练数据集上的分类误差是被 Gm(x)Gm(x) 误分类样本的权值之和。
(c)计算 Gm(x)Gm(x) 的系数 αmαm
αm=12ln1−errmerrmαm=12ln1−errmerrm
αmαm 表示 Gm(x)Gm(x) 在最终分类器中的重要程度。当 errm≤12errm≤12 时, αm≥0αm≥0 ,且 αα 随着 errmerrm 的减小而增大,也就是说,分类误差越小的基分类器在最终分类器中的权重越大。
(d)更新训练数据集的权值分布,为下一轮迭代做准备
D(m+1)=(w(m+1)1,w(m+1)2,…,w(m+1)N)w(m+1)i=w(m)iZmexp(−αmyiGm(xi))D(m+1)=(w1(m+1),w2(m+1),…,wN(m+1))wi(m+1)=wi(m)Zmexp(−αmyiGm(xi))
上面的式子可以写成
w(m+1)i=⎧⎩⎨⎪⎪w(m)iZme−αm,Gm(xi)=yiw(m)iZmeαm,Gm(xi)≠yiwi(m+1)={
wi(m)Zme−αm,Gm(xi)=yiwi(m)Zmeαm,Gm(xi)≠yi
其中, ZmZm 是规范化因子,它的存在保持了 Dm+1Dm+1 是一个概率分布
Zm=∑i=1Nw(m)iexp(−