机器学习之adaboost

80 阅读3分钟

监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法Adaboost等 无监督算法:聚类,降维,关联规则, PageRank等 AdaBoost算法是一种再学习的一种方式,英文全称是 Adaptive Boosting,中文含义是自适应提升算法。它由 Freund 等人于 1995 年提出,是对 Boosting 算法的一种实现。

什么是 Boosting 算法呢?Boosting 算法是集成算法中的一种,同时也是一类算法的总称。这类算法通过训练多个弱分类器,将它们组合成一个强分类器,也就是我们俗话说的“三个臭皮匠,顶个诸葛亮”。为什么要这么做呢?因为臭皮匠好训练,诸葛亮却不好求。因此要打造一个诸葛亮,最好的方式就是训练多个臭皮匠,然后让这些臭皮匠组合起来,这样往往可以得到很好的效果。这就是 Boosting 算法的原理。

  • Adaboost是通过改变样本的数据分布来实现的,AdaBoost 会判断每次训练的样本是否正确分类,对于正确分类的样本,降低它的权重,对于被错误分类的样本,增加它的权重。
  • 再基于上一次得到的分类准确率,来确定这次训练样本中每个样本的权重。
  • 然后将修改过权重的新数据集传递给下一层的分类器进行训练。这样做的好处就是,通过每一轮训练样本的动态权重,可以让训练的焦点集中到难分类的样本上,最终得到的弱分类器的组合更容易得到更高的分类准确率。 过程理解就是这样, 我的训练样本在开始的时候啊,每个样本都会有一个权重, 计算损失的时候也会把这个权重给考虑上。 ,意味着同等重要, 但是我们训练出一个分类器A之后,如果这个分类器A能把之前的样本正确的分类,就说明这些正确分类的样本由A来搞定就可以了。 我们下一轮训练分类器B的时候就不需要太多的关注了,让B更多的去关注A分类错误的样本? 那怎么做到这一点呢? 那就把A分类正确的样本的权重减小,分类错误的样本的权重增大。这样,B在训练的时候,就能更加的关注这些错误样本了,因为一旦把这些样本分类错误,损失就会腾腾的涨(权重大呀),为了使损失降低,B就尽可能的分类出这些A没有分出的样本,问题解决。那如果训练出来的B已经很好了,误差很小了,仍然有分不出来的怎么办? 那同样的道理,把这些的权重增大,交给下一轮的C。 每一轮的分类器各有专长的。