正文
对于使用提升(Boosting)方法,需要解决两个问题:
如何改变每一轮训练数据的权重或者概率分布;
如何将各个弱分类器(弱学习器)组合成一个强分类器(强学习器)。
AdaBoost算法的做法是:
提高那些前一轮被弱分类器错误分类样本的权重,降低那些被正确分类样本的权重;
对于弱分类器的组合,AdaBoost采取的是加权多数表决的方法。具体做法是:加大分类误差率小的弱分类器的权重,使其在表决中起较大作用;减小分类误差率大的弱分类器的权重,使其在分类中表决中起较小的作用。
AdaBoost算法过程:
假设有训练数据集T={(x1,y1),(x2,y2),...,(xn,yn)}
其中xi∈X⊆Rn,i=1,2,...,n
类标yi∈Y={−1,+1},i=1,2,...,n
最终训练出一个强分类器G(x)
1、初始化训练数据的权值分布,确保每份训练数据的权重一致:
D=(w1,...,wi,...,wN)
其中
2、用训练数据集 TT训练M个弱分类器 Gm(x),则可以得到 M个的权值分布,即有:
其中 m=1,2,...,M
3、计算Gm(x)在训练数据集上的分类误差率
4、计算 Gm(x)系数
αm的图像如下
由图像可知,随着分类误差率 em越大, Gm(x)系数 αm会越小。
4、更新训练数据的权值分布:
5、构建弱分类器的线性组合:
6、最终经过 M轮迭代,构建出来的强分类器为:
其中 sign(x)是一个符号函数,它符合: