Adaboost基本二分类算法

最早类型的Adaboost是由Yoav Freund和Robert E.Schapire提出的,一种用于二分类的boosting集成学习方法。也是李航《统计学习方法》中所介绍的Adaboost。它将一系列弱分类器的线性组合,生成一个强分类器。需要注意的是这里的弱分类器的定义是学习的正确率仅比随机猜测略好的分类器。如果基分类器已经是强学习了,再用boosing的话可能提升的效果就不是很明显了。因为boosting的想法就是将弱学习算法提升成强学习算法。Adaboost是一个二分类算法,所以随机猜测的error就是0.5。

下面是Adaboost算法的伪代码:

从算法的伪代码我们可以看到如下情况:

 1、Adaboost最后返回的是一系列弱分类器的加权线性组合,当有新的样本点需要预测时,直接放入最后的模型即可。

 2、每次迭代拟合一个弱分类器以后,算法会根据基分类器的error分配给该基分类器一个权重(第9行),分类错误率越小的分类器权重越大,反之亦然。然后,就会修改样本的权重(第10行),提高分类错误样本的权重,降低分类正确样本的权重。因为在公式里面乘上了\alpha _t,所以在修改样本的权重时也会考虑具体的基分类器。在权重很高的基分类器中,分错的样本会有更高的权重。下一 次迭代就会使用重新分配权重的数据拟合新的弱分类器,同时会重点关注分类错误的样本。

 3、分类误差为所有分类错误的样本权重之和(注意,样本权重后面更新时做了Normalize,保证了概率分布)。但是,当弱分类  器的分类误差大于0.5的时候,算法就停止迭代了。解决这个问题主要有以下几种办法:

      a)选择较强的弱分类器。

      b)遇到error大于0.5时,反转分类器的结果。

           二分类的时候,如果基分类器的error大于0.5,就把输出的正负结果反转以下,这样原来的准确率就变成了error。同时也保证了error小于0.5。

      c)遇到error大于0.5时,重新设定权值。

           也就是在发现一个基分类器error大于0.5的时候,舍弃这个基分类器。然后重新设定所有样本的权值(就好像重新运行Adaboost一样)

      d)反复重新采样和生成基分类器直到error小于0.5.

            重采样的方法主要是针对无法接受带权样本的基学习器。需要注意的是,这种方法不仅可能导致计算复杂度的严重提升,在有些情况下甚至出现“试了100次也没有办法得到一个error小于0.5的结果”,尤其是在权值分布已经严重偏向某些样本(通常是noise)的时候,这种情况更为常见。

  4、在每次迭代训练基本分类器时,选择误差最小的基本分类器。

至于为什么弱分类器的error要小于0.5,原因有以下几点

1、PCA定义了弱分类器为识别错误率小于0.5的学习算法。

2、集成学习的基分类器要有一定准确性,太坏反而会对集成的结果起到负的作用。所以,正如前面所说基分类器要比随机猜测的结果好。针对现在的二分类,随机猜测的error就是0.5。

3、如果基分类器的误分类率大于0.5,该基分类器的权重就为负数,同时error越大,负数就越小,也就意味这该分类器的权重大。但这样不符合逻辑,因为这个分类器的error很大,权重应该更小才对。所以,只有到那个error小于等于0.5时,基分类器的权重是大于等于0的。

下面列以下Adaboost的优缺点:

Adaboost的优点:

1、没有很多的参数需要调整。

2、不容易过拟合,但是基分类器太复杂也会过拟合。

3、可以构造任意复杂的决策区域,处理非线性的数据。

4、Adaboost是一个框架,可以使用多种基学习器。

Adaboost的缺点:

1、对噪声和异常点很敏感。

这个只是最基础的二分类Adaboost算法,它还可以推广到多分类,也就是Adaboost.M1算法。将在下一篇文章讲解。

参考链接:https://ask.julyedu.com/question/65

                  http://www.voidcn.com/article/p-oxwcnnol-by.html

                  https://www.csd.uwo.ca/courses/CS4442b/L5-ML-Boosting.pdf

                  https://zhuanlan.zhihu.com/p/38507561

                  https://zhuanlan.zhihu.com/p/37671791

参考书籍:李航《统计学习方法》,周志华《机器学习》

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值