基本原理
Boosting族算法可以将多个弱分类器加权结合成强分类器。其中,AdaBoost是最为显著的代表算法,它的基本思想为:先从初始训练集训练出一个弱分类器,每一次训练的弱分类器参与下一次训练,直到错误率足够小或者达到指定迭代次数。
AdaBoost算法的三个步骤:
一、对训练数据赋相同的权重。如果样本数为m,权重为1/m。
二、训练弱分类器并计算每个分类器的权重值alpha。训练出一个弱分类器后,计算该分类器的错误率ε,alpha计算公式如下
分类正确的样本在下一次训练时权重减小,分类错误的样本在下一次训练时权重增加。即每次训练的弱分类器一方面计算分类器权重值alpha,另一方面调整用于下一轮训练的样本权重。
三、将所有弱分类器加权结合得到强分类器,权值为alpha。
如果基于“加性模型”(additive model),即弱分类器的线性组合,用公式表达为
其中ht(x)是弱分类器,αt是每个弱分类器的权重值alpha。
使用线性组合来最小化损失函数
如果H(x)能使损失最小化,考虑上式对H(x)的偏导
令偏导等于0解得
最后构建的强分类器为
第一个弱分类器h1由初始数据得到,迭代生成ht,αt
弱分类器ht使得αtht能够最小化损失函数