西瓜书+实战+吴恩达机器学习(十二)监督学习之AdaBoost

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhq9695/article/details/87732045

如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

0. 前言

Boosting:先训练一个基学习器,然后根据学习器的表现对样本分布进行调整,给予做错的样本更多的关注,再基于调整后的分布训练下一个基学习器,如此重复达到指定的学习器数目,将这些学习器集成

Boosting主要关注降低偏差,因此能基于泛化性能弱的学习器构建出很强的集成。

AdaBoost是集成学习Boosting的代表算法。

1. AdaBoost算法

AdaBoost 算法流程可描述如下:

  1. 对每个训练样本设定相等的权重
  2. 训练一个加权错误率最低的最佳弱分类器,加权错误率为 ε t \varepsilon_t
  3. 根据加权错误率,计算弱分类器的分类器权重 α t = 1 2 ln ( 1 ε t ε t ) \alpha_t=\frac{1}{2}\ln(\frac{1-\varepsilon_t}{\varepsilon_t})
  4. 更新权重向量,如果样本上一轮分类正确 D t + 1 ( x ) = D t ( x ) exp ( α t ) i = 1 m D t ( x i ) D_{t+1}(x)=\frac{D_t(x)\exp(-\alpha_t)}{\sum_{i=1}^mD_t(x_i)}
  5. 更新权重向量,如果样本上一轮分类错误 D t + 1 ( x ) = D t ( x ) exp ( α t ) i = 1 m D t ( x i ) D_{t+1}(x)=\frac{D_t(x)\exp(\alpha_t)}{\sum_{i=1}^mD_t(x_i)}
  6. 执行第2步,继续训练下一个弱分类器,直到弱分类器达到指定数量
  7. 预测时,将数据通过每个弱分类器,将其结果加权求和

如下图所示(图源:机器学习):

如果发现当前学习器不满足条件(分类错误率大于0.5,意味着不如随机选择),则抛弃这个学习器,并停止学习。


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

猜你喜欢

转载自blog.csdn.net/zhq9695/article/details/87732045