**
概念
**
提升方法基于这样一种思想:对于一个复杂的任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。实际上,就是“三个臭皮匠顶个诸葛亮”的道理。
分类器:kNN算法、决策树、贝叶斯分类、逻辑回归、支持向量机(SVM)、基于关联规则的分类等。
如果说一个分类器 分类结果与实际值比正确率很高,就称是强分类器,如果正确率不高,仅仅比随即猜测略好,那么就称是弱分类。提升方法在分类问题上最主要的用途就是将多个弱分类器集合成一个强分类器。
对于分类问题而言,给定一个训练样本集,求弱分类器比强分类器容易得多。提升方法就是从弱学习算法出发,反复学习,得到一系列弱分类器。然后组合这些弱分类器,构成一个强分类器。
**
Adaboost原理
**
Adaboost是“Adaptive Boosting”(自适应增强)的缩写,它的自适应在于:前一个基本分类器被错误分类的样本的权值会增大,而正确分类的样本的权值会减小,更新权值后,并再次用来训练下一个基本分类器 。 同时,在每一轮迭代中,加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数才能确定最终的强分类器。
Adaboost只是提升方法一种较为典型的方法:这样一来哪些没有得到正确分类的数据,由于其权值的加大受到后一轮的弱分类器更大的关注。于是,分类问题被一系列的弱分类器“分而治之”。
首先adaboost这个算法和以上的算法,思路都不太一样,上面的那些方法都是提高自身的性能,让自己变成强分类器,但是adaboost的思路却是,这个分类器较弱在一些特定的情况,或者特征下表现比较好,但一旦情况复杂,数据量大的时候,这些分类器的表现就不好了,然后adaboost就想了一个方法,多找一些分类器,它们各自都能在一些情况下表现良好,把它们组合起来,那么最终不就变成一个强分类器。
“关注”被错分的样本,“器重”性能好的弱分类器。
**
Adaboost算法步骤
**
怎么实现
(1)不同的训练集调整样本权重
(2)“关注”增加错分样本权重
(3)“器重”好的分类器权重大
(4) 样本权重间接影响分类器权重
**
Adaboost实例讲解
**
例: 给定如图所示的训练样本,弱分类器采用平行于坐标轴的直线。用Adaboost算法的实现强分类过程。
用python作图效果如下:
首先需要初始化训练样本数据的权值分布,每个训练样本最开始都被赋予相同的权值:1/N
本例使用水平或者垂直的直线作为分类器。
误分类点如图所示:
进行第二次迭代:
可见正确分类的样本的权值由原来的1/10减小到1/14,错误分类的样本权值由原来的1/10增大到1/6权值变化情况。
当选择G2分类器时误分类点如图
第三次迭代:
可见正确分类的样本的权值由原来的1/10减小到1/14,错误分类的样本权值由原来的1/10增大到1/6权值变化情况。
误分类点如图所示:
**
优缺点
**
优点:
(1)用于做分类任务,无脑化,简单,几乎不会过拟合,不用调分类器
(2)Adaboost可以根据弱分类器的反馈,自适应地调整假定的错误率,执行的效率高。
(3)Adaboost提供一种框架,在框架内可以使用各种方法构建子分类器。可以使用简单的弱分类器,不用对特征进行筛选。缺点:
在Adaboost训练过程中,Adaboost会使得难于分类样本的权值呈指数增长,训练将会过于偏向这类困难的样本,导致Adaboost算法易受噪声干扰。