提升算法 AdaBoost 算法

本文来自我的个人博客 https://www.zhangshenghai.com/posts/48763/

提升算法的基本思路

提升算法是从弱学习算法出发,反复学习,得到一系列弱分类器(又称为基本分类器),然后组合这些弱分类器,构成一个强分类器。

有两个问题:

  • 在每一轮如何改变训练数据的权值或概率分布
  • 如何将弱分类器组合成一个强分类器

对于第一个问题,AdaBoost的做法是提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。
对于第二个问题,AdaBoost采取加权多数表决的方法。即加大分类误差率小的弱分类器的权值,减小分类误差率大的弱分类器的权值。

AdaBoost 算法

输入:训练数据集,其中;弱学习算法。

输出:最终分类器。

  1. 初始化训练数据的权值分布

  2. (a)使用具有权值分布的训练数据集学习,得到基本分类器

    (b)计算在训练数据集上的分类误差率

    (c)计算的系数

    (d)更新训练数据集的权值分布


    ​ 其中,是规范化因子

  3. 构建基本分类器的线性组合

    得到最终分类器

AdaBoost 算法的解释

AdaBoost 算法可以认为是模型为加法模型、损失函数为指数函数、学习算法为前向分布算法时的二类分类学习方法。

前向分布算法

前向分布算法:
输入:训练数据集,损失函数;基函数集
输出:加法模型

  1. 初始化

(a) 极小化损失函数

得到参数

(b)更新

(c)得到加法模型

前向分布算法与 AdaBoost

AdaBoost 算法是前向分布加法算法的特例。这时,模型是由基本分类器组成的加法模型,损失函数是指数函数。

你可能感兴趣的:(提升算法 AdaBoost 算法)