AdaBoost算法

一、AdaBoost算法简介

    Boosting, 也称为增强学习或提升法,是一种重要的集成学习技术,能够将预测精度仅比随机猜度略高的弱学习器增强为预测精度高的强学习器,这在直接构造强学习器非常困难的情况下,为学习算法的设计提供了一种有效的新思路和新方法。其中最为成功应用的是,Yoav Freund 和 Robert Schapire 在 1995 年提出的 AdaBoost算法[1]。AdaBoost是英文"Adaptive Boosting"(自适应增强)的缩写,它的自适应在于:前一个基本分类器被错误分类的样本的权值会增大,而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器。同时,在每一轮迭代中,加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数才确定最终的强分类器。

Adaboost  算法可以简述为三个步骤:

(1)首先,是初始化训练数据的权值分布 Di 。假设有 N 个训练样本数据,则每一个训练样本最开始时,都被赋予相同的权值:W i =1/N。 

(2)然后,训练弱分类器 h i 。具体训练过程中是:如果某个训练样本点,被弱分类器 h i 准确地分类,那么在构造下一个训练集中,它对应的权值要减小;相反,如果某个训练样本点被错误分类,那么它的权值就应该增大。权值更新过的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。 

(3)最后,将各个训练得到的弱分类器组合成一个强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中起着较大的决定作用,而降低分类误差率大的弱分类器的权重,使其在最终的分类函数中起着较小的决定作用。 换而言之,误差率低的弱分类器在最终分类器中占的权重较大,否则较小。

二、AdaBoost 算法过程

AdaBoost算法


[1]Yoav Freund,Robert SchapireA,"Decision-Theoretic Generalization of On-Line Learningand an Application to Boosting*",journal of computer and system sciences,1995

[2]