算法8.1 AdaBoost
输入:
训练数据集T={X, y},X为N个包含n个特征的样本,y取值为-1或1
弱学习算法
输出:
最终分类器G(x)
将训练数据的权值分布初始化为均匀分布
wmi代表第m个弱分类器的第i个样本的权重。
则:
w1i=N1,i=1,2,⋯,N 根据权重wm得到第m个弱分类器:
Gm(x):X→−1,+1 计算弱分类器Gm(x)的加权误分类率,这个误分类率也是带权重计算的。
em=i=1∑NwmiI(Gm(xi)=yi) 计算am,am代表第m个分类器的重要性:
am=21logem1−em 其中,log以e为底
误分类率越小,这个弱分类器越有发言权。
更新第m+1个弱分类器中每个样本的权重
wm+1,i=wmiexp(−amyiGm(xi)) 然后使wm+1,i成为一个分布,即满足∑i=1Nwm+1,i=1
公式8.4我觉得不对,分母不应该是Zm,而应该是Zm+1,而Zm+1又依赖于wm+1,i的结果,所以要分成两步计算。
yiGm(xi)代表对样本i是否分类正确。
生成m个弱分类器后,组成一个强分类器
f(x)=m=1∑MamGm(x)G(x)=sign(f(x))