本文来自我的个人博客 https://www.zhangshenghai.com/posts/48763/
提升算法的基本思路
提升算法是从弱学习算法出发,反复学习,得到一系列弱分类器(又称为基本分类器),然后组合这些弱分类器,构成一个强分类器。
有两个问题:
- 在每一轮如何改变训练数据的权值或概率分布
- 如何将弱分类器组合成一个强分类器
对于第一个问题,AdaBoost的做法是提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。
对于第二个问题,AdaBoost采取加权多数表决的方法。即加大分类误差率小的弱分类器的权值,减小分类误差率大的弱分类器的权值。
AdaBoost 算法
输入:训练数据集,其中
;弱学习算法。
输出:最终分类器。
-
初始化训练数据的权值分布
-
对
(a)使用具有权值分布
的训练数据集学习,得到基本分类器
(b)计算在训练数据集上的分类误差率
(c)计算的系数
(d)更新训练数据集的权值分布
其中,
是规范化因子
-
构建基本分类器的线性组合
得到最终分类器
AdaBoost 算法的解释
AdaBoost 算法可以认为是模型为加法模型、损失函数为指数函数、学习算法为前向分布算法时的二类分类学习方法。
前向分布算法
前向分布算法:
输入:训练数据集,损失函数
;基函数集
输出:加法模型
-
初始化
-
对
(a) 极小化损失函数
得到参数
(b)更新
(c)得到加法模型
前向分布算法与 AdaBoost
AdaBoost 算法是前向分布加法算法的特例。这时,模型是由基本分类器组成的加法模型,损失函数是指数函数。
网友评论