集成方法—AdaBoost原理详解

目前集成学习方法分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法,代表有Boosting,其中最为代表的是Adaboost;以及个体学习器间不存在强依赖关系,可同时生成的并行化方法,代表是Bagging和“随机森林”。

一、AdaBoost原理详解

AdaBoost是典型的Boosting算法,属于Boosting家族的一员。在说AdaBoost之前,先说说Boosting提升算法。Boosting算法是将“弱学习算法“提升为“强学习算法”的过程,主要思想是“三个臭皮匠顶个诸葛亮”。一般来说,找到弱学习算法要相对容易一些,然后通过反复学习得到一系列弱分类器,组合这些弱分类器得到一个强分类器。Boosting算法要涉及到两个部分,加法模型和前向分步算法。加法模型就是说强分类器由一系列弱分类器线性相加而成。一般组合形式如下:
集成方法—AdaBoost原理详解
集成方法—AdaBoost原理详解
前向分步就是说在训练过程中,下一轮迭代产生的分类器是在上一轮的基础上训练得来的。也就是可以写成这样的形式:
集成方法—AdaBoost原理详解
由于采用的损失函数不同,Boosting算法也因此有了不同的类型,AdaBoost就是损失函数为指数损失的Boosting算法。

1.1 原理理解

基于Boosting的理解,对于AdaBoost,我们要搞清楚两点:

  1. 每一次迭代的弱学习 h ( x ; a m ) h(x;a_m) h(x;am)有何不一样,如何学习?
  2. 弱分类器权值 β m \beta _m βm如何确定?

对于第一个问题,AdaBoost改变了训练数据的权值,也就是样本的概率分布,其思想是将关注点放在被错误分类的样本上,减小上一轮被正确分类的样本权值,提高那些被错误分类的样本权值。然后,再根据所采用的一些基本机器学习算法进行学习,比如逻辑回归。

对于第二个问题,AdaBoost采用加权多数表决的方法,加大分类误差率小的弱分类器的权重,减小分类误差率大的弱分类器的权重。这个很好理解,正确率高分得好的弱分类器在强分类器中当然应该有较大的发言权。

1.2 实例

举《统计学习方法》中的例子
有如下的训练样本,我们需要构建强分类器对其进行分类。x是特征,y是标签。
集成方法—AdaBoost原理详解
集成方法—AdaBoost原理详解

1.3 算法流程

集成方法—AdaBoost原理详解

1.4 公式推导过程

集成方法—AdaBoost原理详解

  • AdaBoost算法学习是加法算法,是由基本分类器组成的加法模型,损失函数是指数函数;

1.5 相关问题

  1. 手推AdaBoost ;
  2. 与GBDT比较的异同点;
  3. AdaBoost几种基本机器学习算法哪个抗噪能力最强,哪个对重采样不敏感?;