概述
AdaBoost算法是基于Boosting思想的机器学习算法(GBDT也是基于该思想),其中AdaBoost是Adaptive Boosting的缩写,AdaBoost是一种迭代型的算法,其核心思想是针对同一个训练集训练不同的学习算法,即弱学习算法,然后将这些弱学习算法集合起来,构造一个更强的最终学习算法。
算法的大致过程如下:
- 先通过对N个训练样本的学习得到第一个弱分类器;
- 将分错的样本和其他的新数据一起构成一个新的N个的训练样本,通过对这个样本的学习得到第二个弱分类器 ;
- 将1和2都分错了的样本加上其他的新样本构成另一个新的N个的训练样本,通过对这个样本的学习得到第三个弱分类器;
- 最终经过提升的强分类器。即某个数据被分为哪一类要由各分类器权值决定。
和GBDT的区别
- Adaboost用错分数据点来识别问题,通过调整错分数据点的权重来改进模型。GBDT通过负梯度来识别问题,通过计算负梯度来改进模型。
- GBDT的弱学习器限定了只能使用CART回归树模型。