Adaboost算法

Adaboost算法是boosting算法家族中的一个最基本最流行的一种算法,假若对于Adaboost算法有了一定的认识,则未来会对GBDT和Xgboost等更强力的boosting算法有更深的了解。

Adaboost算法

下面对其算法原理进行详细的介绍:
第一个直方图长短代表每一个样本的权重为D,然后经过分类器得到一个预测结果,每一个分类器有一个权重为a。Adaboost算法的核心在于不断的更新权重D和a,然后不断生成多个分类器,分类器的结果乘以a,最后综合输出分类结果。

对于如图的一个问题,分类器选择单决策树(也就是一个值的大或小的判断):

Adaboost算法

其大概的算法过程如下:
1)首先生成分类器,对于一个数据集X,标签L,以固定的权为参数,以误差结果为目标函数,以阈值(也就是分解值)和选取的特征为自变量,找到最优的分类特征(x轴或者y轴)和阈值。


2)其次,更新权重,根据数学公式(打开李航的统计学习方法就有),计算权重D和a,来生成新的分类器。直到分类器数目符合要求,或者误差为零停止。


3)根据多个分类器的输出结果乘以a,即可以得到最终的分类结果。


算法结束,Adaboost算法的最重要的点就是在上一次的分类误差上,不断生成新的分类器,来降低误差。
内容来源于机器学习实战。
关于算法的具体数学公式,这篇博客很详细:http://www.cnblogs.com/pinard/p/6133937.html