AdaBoost (Adaptive Boosting) 自适应增强算法在预测中的应用

AdaBoost学习算法用于提高简单学习算法的分类性能。

它通过组合一组弱分类函数(具有较高分类错误的弱分类器)来形成更强的分类器。最后的强分类器的预测结果是:采用弱分类器的预测值乘以当前分类器的权重的加权组合的形式。

AdaBoost方法的自适应在于:前一个分类器分错的样本会被用来训练下一个分类器。

AdaBoost方法对于噪声数据和异常数据很敏感,但在一些问题中,AdaBoost方法相对于大多数其它学习算法而言,不会很容易出现过拟合现象。AdaBoost方法中使用的分类器可能很弱(比如出现很大错误率),但只要它的分类效果比随机好一点(比如两类问题分类错误率略小于0.5),就能够改善最终得到的模型。而错误率高于随机分类器的弱分类器也是有用的,因为在最终得到的多个分类器的线性组合中,可以给它们赋予负系数,同样也能提升分类效果。

与Boosting的区别

Boosting 是一种将弱分类器转化为强分类器的方法统称,而AdaBoost是其中的一种,采用了exponential loss function(其实就是用指数的权重),根据不同的loss function还可以有其他算法,比如L2Boosting, logitboost等。

实现思路:

AdaBoost方法是一种迭代算法,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率。每一个训练样本都被赋予一个权重,表明它被某个分类器选入训练集的概率。如果某个样本点已经被准确地分类,那么在构造下一个训练集中,它被选中的概率就被降低;相反,如果某个样本点没有被准确地分类,那么它的权重就得到提高。

具体过程:

 优点分析:

Adaboost作为分类器时,分类精度很高
在Adaboost的框架下,可以使用各种回归分类模型来构建弱学习器,非常灵活。
作为简单的二元分类器时,构造简单,结果可理解。
不容易发生过拟合
主要缺点:

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

原文地址:https://www.cnblogs.com/xinyuePhd/p/13182419.html