集成方法之Bagging和Boosting

Posted 挂科难

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集成方法之Bagging和Boosting相关的知识,希望对你有一定的参考价值。

集成方法(ensemble method)

通过组合多个学习器来完成学习任务,颇有点“三个臭皮匠顶个诸葛亮”的意味。
基分类器一般采用的是弱可学习(weakly learnable)分类器,通过集成方法,组合成一个强可学习(strongly learnable)分类器。

所谓弱可学习,是指学习的正确率仅略优于随机猜测的多项式学习算法;
强可学习指正确率较高的多项式学习算法。

集成学习的泛化能力一般比单一的基分类器要好,这是因为大部分基分类器的分类错误的概率远低于单一基分类器的。
集成方法主要包括Bagging和Boosting
Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器,更准确的说这是一种分类算法的组装方法,把弱分类器组装成强分类器的方法。

Bagging

全程自举汇聚法(bootstrap aggregating),称为bagging方法。Bagging对训练数据采用自举采样(boostrap sampling),即有放回地采样数据。
主要思想

  • 从原始样本集中抽取训练集。每轮从原始样本集中使用自助法(Bootstraping)的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)
  • 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。
  • 对分类问题:将上步得到的k个模型采用投票的方式(就是预测的哪个类别多就是哪个类别)得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。

代表算法是随机森林

# 代码有时间补上

Boosting

Boosting是一种与Bagging很类似的技术。Boosting的思路则是采用重赋权(re-weighting)法迭代地训练基分类器,
主要思想

  • 每一轮的训练数据样本赋予一个权重,并且每一轮样本的权值分布依赖上一轮的分类结果。
  • 基分类器之间采用序列式的线性加权方式进行组合

代表算法由Adaboost,GBDT,XGBoost算法
贴一个Adaboost的代码

# 后补

区别

采样区别

  • Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
  • Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

权重

  • Bagging:使用均匀取样,每个样例的权重相等。
  • Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。(但这样会导致改算法对异常数据过于敏感)

预测函数

  • Bagging:所有预测函数的权重相等。
  • Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

以上是关于集成方法之Bagging和Boosting的主要内容,如果未能解决你的问题,请参考以下文章

机器学习:集成方法之Bagging和Boosting

集成学习记录(Boosting和Bagging)

集成学习算法总结----Boosting和Bagging

集成学习算法总结----Boosting和Bagging

集成学习算法总结----Boosting和Bagging(转)

集成学习-Bagging和Boosting算法