adaboost

关于adaboost,在《数据挖掘概念与技术》和prml中都有详细的介绍,在这里只是简单的做点介绍,若有错误之处,欢迎指正批评~

一、组合分类方法

组合分类器是一种复合模型,由多个分类器组合而成。个体分类器投票,组合分类器基于个体分类器的投票情况来返回类标号预测。举个例子就是一个病人想知道自己的病症,向多个医生求诊之后,综合参考医生们的意见,来了解自己的病情。一个医生就好比一个个体分类器。组合分类器怎样”综合参考“ ,就依赖于选取的组合分类方法。流行的组合分类方法有装袋(bagging)、提升(boosting)、随机森林(random forest)等。

二、bagging

装袋就是一个少数服从多数的方法。每个个体分类器给出自己的分类标号,组合分类器把占多数的结果作为最终的分类结果。每个个体分类器都有相同的投票权重。

《数据挖掘概念与技术》中给出的算法如下图所示:

在这里,d表示训练数据集的元组总数,每次有放回抽样都会抽出d*个元组作为样本集合(d*<d ),来训练k个个体分类器。

三、adaboost

adaboost算法是提升方法的最广泛的一种实现形式,是adaptive boosting(自适应提升方法)的简称。adaboost和装袋都是综合多个个体分类器的分类结果,它们的区别在于,提升是有序地训练个体分类器,每个个体分类器的分类结果并不是独立的,后面的个体分类器的分类过程要受到前面训练的个体分类器的影响(错分的样本点权重变大),且每个个体分类器的权重不一(根据分类器的错分率或准确率来确定)。

adaboost的框架如下图(取自prml)所示:

上图表示一个二类分类问题,{Wn(1)}表示第1个个体分类器对应的数据集包含的n个数据点的权重集合,yM(x)表示第M个分类器。样本点被赋予了不同的权重。每一轮分类后,样本点的权重会进行调整,影响下一轮分类。当每个分类器被训练完成之后,按照错分率或准确率赋予分类器的投票权重。组合分类器通过计算个体分类器结果的加权和,来预测分类。

举个例子看样本点如何调整影响分类器(取自prml)。黑色虚线表示第m个个体分类器给出的分界,绿色实线表示组合分类器综合前m个分类器的“意见”给出的分界。样本点的权重用圈圈的大小表示。m=1时,所有的样本点权重都是一样的,第一轮分类后,正确分类的样本点权重变小,错分的权重变大,使得下一个分类器更关注错分的样本点。本例的个体分类器的分类效果是非常差的,因为每个分类器只是简单地给其中一个输入变量设定一个阈值,通过判断某个输入特征是否满足阈值条件来把空间一分为二。但是从m=150的分类结果来看,每一轮样本点的权限不断更新,即使个体分类器的分类效果不理想,组合分类器的分类效果却是非常好的。

那么adaboost的具体算法是怎么样的呢?样本点的权重如何调整?个体分类器的投票权重如何计算?

《数据挖掘概念与技术》给出算法过程清楚明了,如下所示(prml给出的算法与其基本一致)

 

对上述算法的补充说明如下:

1、(8.34式)计算个体分类器的错误率:

其中, 是数据集中样本点的权重,是元组的误分类误差,若 被误分类,则为1,否则为 0

2、在方法的第11行提到要规范化每个元组的权重,即每个元组都要除以所有元组的权重和。

3、从分类器的投票权重计算公式(使用组合分类器对元组X分类第3行)可以看出,分类器的错误率越低,它的权重越高

4、使用组合分类器对元组X分类究竟是个怎样的过程呢?举个二类分类问题,分类结果为Y的分类器分别有分类器a、c,权重为10、20,结果为N的分别有b、d号分类器,分类器权重为30,40,那么类Y的权重为10+20=30,类N的权重为30+40=70,最终组合分类器就会返回具有最大权重的类,即N。

 

转载于:https://my.oschina.net/u/1412321/blog/195736

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值