一.算法思想
AdaBoost是一种特殊的Boosting族算法,它与众多的Boosting一族的算法的工作机制一致:先从初始训练样本中训练一个基学习器(也称弱学习器),再根据基学习器的表现对训练样本的分布进行调整,使得先前基学习器分类错误的样本在后续中受到更多的关注(即加大权重),然后基于调整后的样本分布来训练下一个基学习器,如此重复进行,直至基学习器的数量达到事先指定的值T,最终将这T个基学习器进行加权结合。
二.算法过程
给定训练集
D={(x1,y1),(x2,y2),...,(xm,ym)}
其中
xi∈X,yi∈{−1,+1}
初始化训练样本权重
D1(i)=m1(i=1,2,...,m)
for t = 1,2,…,T:
训练弱分类器
ht=ζ(D,Dt)
计算错误率
ϵt=Pri∼Dt(ht(xi)=yi)
计算弱分类器的权重
αt=21ln(ϵt1−ϵt)
更新训练样本的权重:
Dt+1=ZtDt(i)×{e−αt,ht(xi)=yieαt,ht(xi)=yi=ZtDt(i)e−αtyiht(xi)
输出结果
Hfinal(xi)=sign(∑t=1Tαtht(xi))