boosting方法是一种常用的统计学习方法,应用广泛且有效,在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能,这里我们通过Adaboost算法的示例分析来了解boosting方法的基本思路。
Adaboost算法
1 Adaboost算法流程图
左边是训练数据集,其中直方图的不同长度表示每个样例的权重。在经过一个分类器之后,加权的预测结果会通过三角形中的alpha值进行加权。每个三角形中输出的加权结果在圆形中求和,从而得到最终的输出结果。
2 Adaboost算法详细流程
输入:训练数据集 T={ (x1,y1),(x2,y2),...,(xN,yN)} , xi 为一个n维的特征点, yi∈{ −1,+1}
输出:分类器G(x)
步骤1. 初始化训练数据权值分布
D1={
w11,...,w1i,...w1N},w1i=1N,i=1,2,...N
步骤2. for T=1 to M
(1) 对于权值分布为 Dm 的训练数据集学习,得到弱分类器
Gm:xi→{
−1,+1}
(2) 计算 Gm(x) 在训练数据集上的分类误差
em=P(Gm(xi)≠yi)=∑i=1NwmiI(Gm(xi)≠yi)
(3) 计算分类器 Gm(x) 的权重
αm=