Adaboost算法
Adaboost算法是一种有监督的学习方法,是基于Adaboost算法的分类器把若干个分类器组合成一个分类器的方法,若干个分类器为不同的分类器(弱分类器),因此Adaboost也是一种组合算法,将最终组合成分类器(强分类器)作为数据分类的模型。
Adaboost擅长于处理==分类问题、标签问题、回归问题==。相对于其他分类器而言,它是一基于测试过程中的错误反馈调节分类器的分类效果。在训练阶段,每个训练的数据样本都被赋予一个权重,所有训练样本的权重则构成一个向量,起初每个样本的初始化权重均相等。
Adaboost的训练过程如下:
- 对样本数据进行训练,形成第一个弱分类器,并计算该分类器的错误率。
- 在同样的样本数据中,再次训练弱分类器,但是不同点在于,此次训练会调整样本的权重,在第一次训练后正确的数据集的权重会降低,而分类器的样本数据的权重则会提升。
依次按照上述步骤迭代训练,指导所有的弱分类器最终都能够得到准确的分类,最终将得到的所有弱分类器组合成强分类器。
Adaboost算法的优点:
Adaboost算法的自适应在于它利用之前一个弱分类器分错的样本来训练下一个弱分类器,它对于噪声数据和异常数据非常敏感。它是一种迭代算法,通过在每轮迭代中加入一个弱分类器以达到某个预定的充分小的错误率的目的。
Adaboost算法在人脸检测、表情识别、人行道红绿灯自动识别、驾驶员疲劳检测等方面得到广泛运用。
主要优点如下:
- 准确率得到大幅度提升。
- 分类速度快,且基本上不用调参。
- 过拟合的情况几乎不会出现。
- 在构建子分类器时有多种方法可以使用。
- 方法简单,容易理解和掌握且不用做特征分类。