提升(boosting)方法是一种可以将弱学习器提升为强学习器的算法。在分类问题中,它通过改变训练样本的权重,使得先前学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器,并将这些分类器进行过线性组合,提高分类的性能。
提升方法AdaBoost算法
- 在每一轮如何改变训练数据的权值或概率分布
AdaBoost 提高那些被前一轮弱分类器错误分类的样本的权值,而降低那些被正确分类样本的权值。 - 如何将弱分类器组合成一个强分类器
AdaBoost采取加权多数表决的方法。加大分类误差率小的弱分类器的权值,减小分类误差率大的弱分类器的权值。
AdaBoost算法
算法AdaBoost
输入:训练数据集T,
输出:最终分类器
1. 初始化训练数据的权值分布
2. 对m=1,2,…,M
(a)使用具有权值分布
(b)计算
(c)计算
这里的对数是自然对数
(d)更新训练集的权值分布
这里,
它使
3. 构建基分类器的线性组合
得到最终分类器
算法说明
由式(8.2)知,当
式(8.4)可以写成:
由此可知,被基分类器误分类样本的权值得以扩大,而被正确分类样本的权值却得以缩小。两相比较,误分类样本的权值被放大
不改变训练数据,不断改变训练数据权值的分布,使得训练数据在基本分类器的学习中起不同的作用,这是AdaBoost的一个特点。
最后线性组合
利用基本分类器的线性组合构建最终分类器是AdaBoost的另一特点。
AdaBoost算法的训练误差分析
定理8.1后半部分推导过程中第2个等号后出现的
上述定理说明,可以在每一轮选取适当的
最后一个不等式使用了
所以
AdaBoost算法的解释
AdaBoost算法是模型为加法模型,损失函数为指数函数,学习算法为前向分布算法时的二类分类学习算法。
前向分步算法
考虑加法模型(additive model)
在给定训练数据和损失函数
前向分步算法(forward stagewise algorithm)求解这一优化问题的想法是:因为学习是加法模型,如果能够从前向后,每一步只学习一个 基函数及其系数,逐步逼近优化目标函数式(8.14)那么就可以简化优化的复杂度。具体地,每步只需优化如下损失函数:
前向分步算法与AdaBoost
参考资料
《统计学习方法》第8章