AdaBoost

来源:互联网 发布:杰科网络电视机顶盒gk 编辑:程序博客网 时间:2024/06/16 13:52

AdaBoost
https://www.cnblogs.com/pinard/p/6133937.html
周志华《机器学习》

AdaBoost是Boosting族算法最著名的代表。AdaBoost最基本的性质是它能在学习过程中不断减少训练误差。
下面谈论的是AdaBoost的二分类问题。
这里写图片描述
伪代码如上图:

  1. 初始化样本权值分布
  2. 根据样本分布和样本数据训练出分类器ht
  3. 估计ht的错误率
  4. 根据错误率计算分类器ht的权重
  5. 更新样本分布,其中Zt是规范化因子
  6. repeat 2-5步
  7. 最终的分类器是各个分类器的线性组合

这里写图片描述可以知道,分类器的错误率越高,那么它的权重越小,将来在做决策时的分量就小。


AdaBoost二分类问题的损失函数优化
上面讲到了二分类AdaBoost的基学习器权重系数公式和样本权重更新公式。接下来,我们讲解这些是如何得到的。
其实可以从AdaBoost的损失函数推导出来。
AdaBoost是模型为加法模型,学习算法是前向分步学习算法,损失函数为指数函数的分类问题。
加法模型:最终的强分类器是若干个弱分类器加权平均得到
前向分步学习算法:我们的算法是通过一轮一轮的弱学习器学习,利用前面的结果来更新后一个弱学习器的样本权重
AdaBoost损失函数为指数函数,即:
这里写图片描述
因为学习的是加法模型,如果能够从前向后,每一步只学习一个基学习器及其系数,逐步逼近优化目标函数,那么就可以简化优化的复杂度。
利用前向分步学习算法的关系,可以得到损失函数为:
这里写图片描述
每步只需优化如上损失函数
这里写图片描述

这里写图片描述
此时的Gk(x)即为AdaBoost算法的基分类器,因为它使得加权后的分类器分类误差率最小。
Gk(x)带入并对α求导,使其等于0,便得到
这里写图片描述

AdaBoost小结:
Adaboost的主要优点有:

  1. Adaboost作为分类器时,分类精度很高
  2. 在Adaboost的框架下,可以使用各种回归分类模型来构建弱学习器,非常灵活。
  3. 作为简单的二元分类器时,构造简单,结果可理解
  4. 不容易发生过拟合

Adaboost的主要缺点有:
对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终的强学习器的预测准确性。

原创粉丝点击