数据挖掘十大经典算法(七)-----AdaBoost

简介

AdaBoost是Boosting系列中的一种迭代算法。算法本身是通过改变数据分布实现的,它根据每次训练集中每个样本的分类是否正确,以及上次的总体分类的准确率来确定每个样本的权值,将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器融合起来,作为最后的决策分类器。

adaboost算法对boosting基本问题的调整:

  • 使用加权后选取的训练数据代替随机选取的训练样本,这样将训练的焦点集中在比较难分的训练数据集上;
  • 将弱分类器联合起来,使用加权的投票机制代替平均投票机制;让分类效果好的弱分类器具有较大的权重,而分类效果差的分类器具有较小的权重;

相比于boosting算法,Adaboost算法不需要预先知道弱学习算法学习正确率的下限即弱分类器的误差,并且最后得到的强分类器的分类精度依赖于所有弱分类器的分类精度,这样可以深入挖掘弱分类器算法的能力。

Adaboost算法中不同的训练集是通过调整每个样本对应的权重实现的。开始每个样本对应的权重是相同的,使用原先的数据样本训练出一个弱分类器,对于分类错误的样本,加大其对应的权重,而对分类正确的样本,降低其权重,这样分错的样本就被突出出来了,从而得到一个新的样本分布;在新的样本分布下,再次对弱分类器进行训练,得到弱分类器;依次类推,经过T次循环,得到T个弱分类器,把这T个分类器按照一定的权重叠加起来,得到最终想要的强分类器。

算法优点

  • 得到的分类器精度高
  • 可以使用各种方法构建子分类器,adaboost算法提供的是框架
  • 当使用简单分类器时,计算出的结果是可以理解的,而且弱分类器构造及其简单
  • 简单,不用做特征筛选
  • 不用担心过分拟合(overfitting)

猜你喜欢

转载自blog.csdn.net/m0_38103546/article/details/81194899