八 Adaboost算法

       boosting算法是常用的集成方法之一,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。其代表算法为我们本文所要介绍的Adaboost。

0 Adaboost算法的主要学习内容

1)集成学习思想

2)boosting算法原理

3)Adaboost算法原理

4)损失函数

1集成学习思想[1]

        集成学习思想,训练若干个弱学习器,然后通过一定的策略将其结合起来成为一个强学习器。详细可见第二章随机森林的第一小节集成学习。集成学习可看作有两个分支,在随机森林中,我们介绍了集成学习的一个分支bagging,下面就来介绍另一个分支boosting。

2 boosting[2]

       我们先观察这个boosting的原理图.

图2.1 boosting的原理图

      从图中可以看出,boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习器的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变大,让它们在弱学习器2中得到重视,然后基于调整权重后的训练集来训练弱学习器2,如此重复进行,知道弱学习器数达到事先指定的数目T,最终将这T个学习器通过结合策略变成强学习器。

那Adaboost算法具体又是怎样的呢?

3 Adaboost算法

4 Adaboost分类问题的损失函数优化[2]

       上一节,我们讲到了分类Adaboost的弱学习器权重系数公式和样本权重更新公式,但没有解释这个公式的由来,其实它可以从Adaboost的损失函数推导出来。

       Adaboost算法还有另一种解释,即Adaboost是模型为加法模型,学习算法为前向分步学习算法,损失函数为指数函数的分类问题。

     模型为加法模型好理解,我们的最终的强分类器是若干个弱分类器加权平均而得到的。前向分步学习算法也好理解,我们的算法通过一轮轮的弱学习器学习,利用前一个弱学习器的结果来更新后一个弱学习器的训练权重,也就是说,第k-1轮的强学习器为:

4 Adaboost算法总结

4.1 Adaboost的优点

1)Adaboost作为分类器时,分类精度很高

2)在Adaboost的框架下,可以使用各种回归分类模型来构建弱学习器,非常灵活。

3)作为简单的二元分类器时,构造简单,结果可理解。

4)不容易发生过拟合

4.2 Adaboost的缺点:

1)对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终的强学习器的预测准确性。

2)Adaboost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

3)训练比较耗时,每次重新选择当前分类器最好切分点。

4.3 Adaboost算法应用

1)计算机视觉:目标检测

2)预测森林火灾

3)信用评估

4)人脸检测

参考文献

[1] http://blog.idea2du.com/er-sui-ji-sen-lin/

[2] https://www.cnblogs.com/pinard/p/6133937.html

[3] 李航,《统计学习方法》

[4] https://www.cnblogs.com/ScorpioLu/p/8295990.html

[5] https://blog.csdn.net/haidao2009/article/details/7514787

[6] https://blog.csdn.net/dark_scope/article/details/14103983

注:部分文字、图片来自网络,如涉及侵权,请及时与我们联系,我们会在第一时间删除或处理侵权内容,电话:4006770986。