数据挖掘十大经典算法之——AdaBoost 算法
数据挖掘十大经典算法系列,点击链接直接跳转:
- 数据挖掘简介及十大经典算法(大纲索引)
- 1. 数据挖掘十大经典算法之——C4.5 算法
- 2. 数据挖掘十大经典算法之——K-Means 算法
- 3. 数据挖掘十大经典算法之——SVM 算法
- 4. 数据挖掘十大经典算法之——Apriori 算法
- 5. 数据挖掘十大经典算法之——EM 算法
- 6. 数据挖掘十大经典算法之——PageRank 算法
- 7 数据挖掘十大经典算法之——AdaBoost 算法
- 8. 数据挖掘十大经典算法之——KNN 算法
- 9. 数据挖掘十大经典算法之——Naive Bayes 算法
- 10. 数据挖掘十大经典算法之——CART 算法
简介
Adaboost :Adaptive Boosting(自适应提升)
Boosting :Boostings是提升的意思,提升算法是一种常见的统计学习方法,其作用是将弱学习算法提升为强学习算法。其理论基础为:强可学习器与弱可学习器是等价的,即可通过某些方法将学习中发现的’弱学习算法’特生为强可学习器,这是数学可证明的。
在分类学习中,提升算法通过反复修改训练数据的权值分布,构建一系列的基本分类器(弱分类器),并将这些基本分类器线性组合,构成一个强学习器。
Adaboost算法:是Boosting的代表算法之一。Ada是自适应的Adaptive的缩写.是一种迭代算法,其核心思想是针对同一个训练集,通过反复修改数据的权重,从而训练多个不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个强分类器。其算法本身是通过改变数据分布来实现的,它根据每次训练集中每个样本的分类正确性,以及上次总体分类结果的准确率,来确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器融合起来,作为最终决策分类器。
原理
Adaboost 算法的训练过程就是找出若干个弱分类器[5]。 设 n 个弱分类器(h1,h2,…,hn)是由相同的学习算法形成 的,每个弱分类器能单独对未知样本分类成正样本或负样本(二分类情况),通过加权统计弱分类器的分类结果得出最终的分类结果。 选择弱分类器的过程中,只要求分类器对样本的分类能力大于自然选择就可以了,即分类错误率小于0.5。 凡是分类错误率低于0.5 的分类器都可以作为弱分类器,但在实际的训练过程中,还是选择错误率最低的分类器作为该轮选择的弱分类器,表示 如下:
其中,p=±1, 用于改变不等式的方向,θj 代表某个特征 j 的阈值。 Adaboost 算法模型如图 1 所示。
图 1 中, 权重代表弱分类器对样本分类的贡献大小,其值越大,表明特征对样本的分类能力越好。分类结果是由 n 个弱分类器加权“投票”的结果,投票结果与某一阈值比较,得出最终对样本的分类。 强分类器 F 表示为:
步骤
- 权值调整,提升被错误分类的样本的权重,降低被正确分类的权重
- 基分类器组合,采用加权多数表决算法,加大分类误差率较小的弱分类器的权重,减小误差大的。
具体为:
先通过对N 个训练样本的学习得到第一个弱分类器;
将分错的样本和其他的新数据一起构成一个新的N 个的训练样本,通过对这个样本的学习得到第二个弱分类器;
将分错了的样本加上其他的新样本构成另一个新的N个的训练样本,通过对这个样本的学习得到第三个弱分类器;
如此反复,最终得到经过提升的强分类器。
特性
- Adaboost更加专注于偏差,他可以降低基学习器的偏差,对基学习器进行进一步的提升.
- Adaboost的默认基学习器是决策树,我们也可以使用其他基学习器证明其对降低偏差的影响.
- Adaboost的训练误差分析表明,Adaboost每次迭代可以减少它在训练数据集上的分类误差率,这说明了它作为提升方法的有效性.但是在实际使用中要注意方差-偏差困境,避免泛化能力的降低.
案例
- 【实例讲解】Adaboost算法原理分析和实例+代码
代码
代码来源广泛,本文多为集大成操作,深度研究请关注原创:
- 【python】AdaBoost算法特性
- 【MATLAB】机器学习 AdaBoost算法的MATLAB实现
学术
- 【算法研究】 基于软间隔的AdaBoost弱分类器权重调整算法
- 【算法优化】 基于Adaboost和CART结合的优化分类算法
- 【算法优化】 基于SVM与AdaBoost组合的分类算法研究
应用
目前AdaBoost 算法广泛的应用于人脸检测、目标识别等领域。
- 【目标检测】 基于改进Adaboost算法的车牌定位研究
- 【人脸识别】基于肤色和改进的AdaBoost人脸检测算法研究
参考资料
- 【博客】AdaBoost算法特性
- 【论文】基于 Adaboost 和 CART 结合的优化分类算法
注 :本文旨在引导探索,深度学习还需认真研究相关学者的成果。文章如有侵权,请联系作者删除
总结
以上是生活随笔为你收集整理的数据挖掘十大经典算法之——AdaBoost 算法的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 数据挖掘十大经典算法之——K-Means
- 下一篇: 数据挖掘十大经典算法之——KNN 算法