The strong and weak learnability are equivalent.
--Kearns and Valiant(1989)
强分类器和弱分类器是相同的,多个弱分类器组合可以达到强分类器的效果。通过迭代生成一列分类器,每个分类器都依赖于之前的一个,之前分类器错分的样本被赋予更高的权重。
训练数据集D为 {(x1,y1,w1),( x2,y2,w2),…,( xn,yn,wn)}。xi是输入向量,yi是它的类别并且yi∈Y(类别集合),wi是样例的权重并且∑Iwi=1。
算法构造k个BaseLearner。每个训练样例的权重均被初始化为1/m。每次迭代中,数据集Dt和D相同,仅权重不同。每次迭代构造一个新的分类器ht。
AdaBoost算法的具体步骤如下:
1. 初始化样本权重为1/m,即为训练样本的初始权重分布;
3. 第一次迭代:
(1)训练样本的概率分布相当,训练弱分类器;
(2)计算弱分类器的错误率;
(3)选取合适阈值,使得误差最小;
(4)更新样本权重:减小弱分类器分类效果较好的数据的权重,增大弱分类器分类效果较差的数据的权重。
4. 经T次循环后,得到T个弱分类器,按更新的权重叠加,最终得到的强分类器。
AdaBoost(D,Y,BaseLearner,k) Initialize Di(wi)=1/m; //每个训练样例的权重被初始化为1/m for t=1,.., k do //k个分类器 ht=BaseLearner(Dt); //构造新的分类器 et=∑Dt(wt)[ ht≠y]; //计算ht的错误率 if et>0.5 then //如果错误率大于抛硬币错误率 k=k-1; //移除该次迭代并且 exit-loop //退出该循环 else αt= 1/2ln(et/(1-et)) //放大,提高ht的权重 Dt+1(wi)= Dt(wi)/Zt×exp(-αt) if ft(Dt(wi))=yi or //正确分类,放大该样本权重 Dt+1(wi)= Dt(wi)/Zt×exp(αt) if ft(Dt(wi))≠yi //错误分类,缩小该样本权重 //即 Dt(wi) exp(-αtyiht(xi))/ Zt ,ht(xi)只有1与-1两个取值 endif endfor Output: H(x)=sign(∑t=1Tαtht(x))
note: exp(t)=et
sign(t)大于0,取1;小于0,取-1。
注意:计算et的时候要加上训练样本的权重。Zt为Dt(wi)之和。Dt(wi)/Zt即是对权重进行归一化处理。
例如,图-1所示二维空间数据点的数据集,包含4个实例。zn是二维空间的坐标,yn是类标(label)。
图-1
该数据集在二维空间如图-2所示。
图-2
构建8个弱分类器如图-3所示。
图-3
D1(i)=1/m=1/4
t=1,使用h1分类器进行分类。z1分类正确,其它3个分类错误。e1=0.75>0.5。break。
Z1= D1(1)+ D1(2)+ D1(3)+ D1(4)=1/4+1/4+1/4+1/4=1
D2(i)= D1(i) =1/4
Z2= Z1= D1(1)+ D1(2)+ D1(3)+ D1(4)=1/4+1/4+1/4+1/4=1
t=2,使用h2分类器进行分类。仅z1分类错误。e2=0.25<0.5,α2= 1/2ln(e2/(1-e2))=1/2ln3≈0.55
//exp(-αt)= exp(-1/2ln(et/(1-et))=1/((et/(1-et))0.5
// exp(αt) = exp(1/2ln(et/(1-et))=((et/(1-et))0.5
// z1被错误分类,权重增加
D3(1)= D2(1)/Z2×exp(-α2)=1/4*√3 //√3是根号3啊,真不好打出来
// z2~z4被正确分类,权重降低
D3(2)= D2(2)/Z2×exp(α2)=1/12*√3
D3(3)= D2(3)/Z2×exp(α2)=1/12*√3
D3(4)= D2(4)/Z2×exp(α2)=1/12*√3
Z3= D3(1)+ D3(2)+ D3(3)+ D3(4)=1/4*√3+1/12*√3+1/12*√3+1/12*√3=1/2*√3
t=3,使用h3分类器进行分类。仅zz分类错误。e3=1/12*√3 / (1/4*√3+1/12*√3+1/12*√3+1/12*√3)=1/6 < e2
以此类推。
最终分类器H(x)=sign(∑t=1Tαtht(x))。
部分材料采自于实验室杨T师兄的讲座,谢谢杨T师兄提供资料。
本文示例来自于周志华的《Ensemble Methods, Foundations and Algorithms》第二章Boosting,p28~30。
刘冰《Web数据挖掘》第三章监督学习,p84~85。