数据挖掘十大经典算法之——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 所示。

数据挖掘十大经典算法之——AdaBoost 算法_第1张图片
  图 1 中, 权重代表弱分类器对样本分类的贡献大小,其值越大,表明特征对样本的分类能力越好。分类结果是由 n 个弱分类器加权“投票”的结果,投票结果与某一阈值比较,得出最终对样本的分类。 强分类器 F 表示为:
在这里插入图片描述

步骤

  • 权值调整,提升被错误分类的样本的权重,降低被正确分类的权重
  • 基分类器组合,采用加权多数表决算法,加大分类误差率较小的弱分类器的权重,减小误差大的。

具体为:

  1. 先通过对N 个训练样本的学习得到第一个弱分类器;

  2. 将分错的样本和其他的新数据一起构成一个新的N 个的训练样本,通过对这个样本的学习得到第二个弱分类器;

  3. 将分错了的样本加上其他的新样本构成另一个新的N个的训练样本,通过对这个样本的学习得到第三个弱分类器;

  4. 如此反复,最终得到经过提升的强分类器。

特性

  • Adaboost更加专注于偏差,他可以降低基学习器的偏差,对基学习器进行进一步的提升.
  • Adaboost的默认基学习器是决策树,我们也可以使用其他基学习器证明其对降低偏差的影响.
  • Adaboost的训练误差分析表明,Adaboost每次迭代可以减少它在训练数据集上的分类误差率,这说明了它作为提升方法的有效性.但是在实际使用中要注意方差-偏差困境,避免泛化能力的降低.

案例

  • 【实例讲解】Adaboost算法原理分析和实例+代码

代码

代码来源广泛,本文多为集大成操作,深度研究请关注原创:

  • 【python】AdaBoost算法特性
  • 【MATLAB】机器学习 AdaBoost算法的MATLAB实现

学术

  • 【算法研究】 基于软间隔的AdaBoost弱分类器权重调整算法
  • 【算法优化】 基于Adaboost和CART结合的优化分类算法
  • 【算法优化】 基于SVM与AdaBoost组合的分类算法研究

应用

目前AdaBoost 算法广泛的应用于人脸检测、目标识别等领域。

  • 【目标检测】 基于改进Adaboost算法的车牌定位研究
  • 【人脸识别】基于肤色和改进的AdaBoost人脸检测算法研究

参考资料

  • 【博客】AdaBoost算法特性
  • 【论文】基于 Adaboost 和 CART 结合的优化分类算法

:本文旨在引导探索,深度学习还需认真研究相关学者的成果。文章如有侵权,请联系作者删除

你可能感兴趣的:(基础:数据挖掘,数据挖掘)