[关闭]
@gump88 2016-08-13T20:49:15.000000Z 字数 1885 阅读 9987

机器学习笔记(十一)AdaBoosting算法

MachineLearning


1. AdaBoost算法思想

AdaBoost算法是Adaptive Boost的简称,Boosting通过将一系列弱学习器组合起来,通过集成这些弱学习器的学习能力,得到一个强学习器。具体到AdaBoost算法,AdaBoost在之前学习器的基础上改变样本的权重,增加那些之前被分类错误的样本的比重,降低分类正确样本的比重,这样之后的学习器将重点关注那些被分类错误的样本。最后通过将这些学习器通过加权组合成一个强学习器,具体的,分类正确率高的学习器权重较高,分类正确率低的学习器权重较低。

2. AdaBoost详细算法

这里有几个地方的计算需要注意,一个是分类误差率的计算,一个是分类器系数的计算,还有就是权重向量的更新计算。
输入:
训练集
输出:最终学习器

  1. 初始化权重向量;
  2. 对于1,2,3...,M
  3. 在权重向量的基础上,以分类误差率最小化为目标训练弱分类器
  4. 计算分类误差率
  5. 计算分类器权重系数

    ,这是个递减函数,当分类错误率越低,那么对应的分类器最终占得权重系数越大。

  6. 更新权重向量

    ,其中是规范化系数,

  7. 线性组合成强学习器

3. AdaBoost的前向分步算法解释

前向分步算法是学习加法模型的算法。他的思路是,每一步在前一步的基础上,最小化经验风险,学习该步的基函数和系数。具体到AdaBoost算法就是:AdaBoost是模型是加法模型,学习算法是前向分步算法,损失函数是指数损失函数
损失函数:


因为损失函数是指数损失函数,所以上式变成:

因为都是已知的,设

将损失函数拆分为两部分:



欲使损失函数L最小,L对求偏导并取0。可得:

解得:

显而易见,就是错误率,这与前面的Adaboost算法是一致的。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注