一般来说 adaboost算法包括三步:
1 初始化训练数据的权值,对于有N个样本的数据集,所有样本的初始权值都是1/N
2 训练弱分类器,将前一个弱分类器错误分类的样本的权值加大,减小被正确分类的样本的权值,这样下一个弱分类器就会重新重视被误分类的样本
3 弱分类器组合成强分类器,减小分类误差率大的弱分类器的权值,使之拥有较小的表决权,加大分类误差率小的弱分类器的权值,使它拥有较大的表决权
adaboost算法流程:
(1)给定训练集T 初始化训练集的权值分布
D1=(w11,w12,w13,...,w1n) w1i=1/N
(2)对于第m个弱分类器,通过学习得到基本分类器
Gm(x):->{-1,1}
(3)计算Gm(x)在训练集上的分类误差率em
em=∑i=1 to nwmiI(Gm(xi)!=yi)
(4)计算Gm(x)的权值αm
αm=1/2log(1-em)/em
(5)更新下一个弱分类器的数据样本权值
Dm+1=(wm+1,1,wm+1,2,...wm+1,n)
wm+1,i=wmiexp(-αmyiGm(xi))/Zm
其中Zm是规范化因子
Zm=∑i=1 to nwmiexp(-αmyiGm(xi))
(6)m个弱分类器的组合
f(x)=∑αmGm(x)
得到分类器 G(x)=sign(∑αmGm(x))