本篇博文主要总结关于Adaboost的相关内容。
设训练数据集T={(x1,y1), (x2,y2)…(xN,yN)}
初始化训练数据的权值分布 :
对于m=1,2,…M:
使用具有权值分布Dm的训练数据集学习,得 到基本分类器
Gm(x)表示第m次生成的基本分类器,这个基本分类器可以是逻辑回归,可以是SVM等等都可以。
计算Gm(x)在训练数据集上的分类误差率
计算Gm(x)的系数
显然误差率
越小,则
越大,就是误差率越小的分类器,那么这个分类器的权重越大。
更新训练数据集的权值分布
假定对于第i个样本,分类器
得出的分类结果与实际的
不相等,也就是异号,预测错了,那么
,然后在乘以上一次的权重Wmi,这样一来被预测错误的样本权重被放大了。反正对预测对的样本,其权重会降低。对于被预测错误的样本,会在下一次的模型训练中更加重视。
Zm的目的仅仅是使Dm+1成为一个概率分布
构建基本分类器的线性组合
得到最终分类器
取符号值作为最终的分类。
AdaBoost总结
Adaboost其运用了迭代的思想。每一轮迭代都会关注上一次被错分的样本,然后加入一个新训练一个预测函数,直到达到一个设定的足够小的误差率,或者达到最大的树的数目。
AdaBoost的训练误差是以指数速率下降的;
AdaBoost算法不需要事先知道下界γ,具有 自适应性(Adaptive),它能自适应弱分类器 的训练误差率。