集成方法之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的主要内容,如果未能解决你的问题,请参考以下文章