关闭

机器学习中Bagging和Boosting的区别

标签: 机器学习
2859人阅读 评论(15) 收藏 举报
分类:

       Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器,更准确的说这是一种分类算法的组装方法。即将弱分类器组装成强分类器的方法。

       首先介绍Bootstraping,即自助法:它是一种有放回的抽样方法(可能抽到重复的样本)。

1. Bagging (bootstrap aggregating)

Bagging即套袋法,其算法过程如下:

  1. 从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)

  2. 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)

  3. 对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)

2. Boosting

       其主要思想是将弱分类器组装成一个强分类器。在PAC(概率近似正确)学习框架下,则一定可以将弱分类器组装成一个强分类器。

关于Boosting的两个核心问题:

2.1 在每一轮如何改变训练数据的权值或概率分布?

       通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。

2.2 通过什么方式来组合弱分类器?

       通过加法模型将弱分类器进行线性组合,比如AdaBoost通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值。

而提升树通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型。

3. Bagging,Boosting二者之间的区别

Bagging和Boosting的区别:

1)样本选择上:

Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。

Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

2)样例权重:

Bagging:使用均匀取样,每个样例的权重相等

Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

3)预测函数:

Bagging:所有预测函数的权重相等。

Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

4)并行计算:

Bagging:各个预测函数可以并行生成

Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

4. 总结

       这两种方法都是把若干个分类器整合为一个分类器的方法,只是整合的方式不一样,最终得到不一样的效果,将不同的分类算法套入到此类算法框架中一定程度上会提高了原单一分类器的分类效果,但是也增大了计算量。

下面是将决策树与这些算法框架进行结合所得到的新的算法:

  1. Bagging + 决策树 = 随机森林

  2. AdaBoost + 决策树 = 提升树

  3. Gradient Boosting + 决策树 = GBDT



对机器学习,人工智能感兴趣的小伙伴,请关注我的公众号:

这里写图片描述

4
0
查看评论

【机器学习】决策树及Bagging, Random Forest和Boosting模型融合

前言一晃一个月没写博客了。懒癌又犯了TT。 之前提到过,写博客是为了记录实习中学到的点滴。博主在某家做travelling IT solution的公司实习。公司核心业务还是做Global Distribution System的。我们部门做的是收益系统。我们小组的工作就是模拟运行收益系统。寻找能...
  • AmourDeMai
  • AmourDeMai
  • 2016-05-19 21:49
  • 4214

机器学习中的bagging技巧

bagging的作用bagging是增强原算法的一种手段。神经网络、分类问题、回归问题、线性回归中的子集选择问题、k最近邻算法都可以使用bagging来加强。使用bagging加强后的算法的性能会出现一些有规律的变化。一般而言,若原来的算法的稳定性差,使用bagging后,算法的准确率会得到较大程度...
  • u014791046
  • u014791046
  • 2015-07-10 17:00
  • 1954

机器学习方法(六):随机森林Random Forest,bagging

前面[机器学习方法(四)决策树](http://blog.csdn.net/xbinworld/article/details/44660339)讲了经典的决策树算法,我们讲到决策树算法很容易过拟合,因为它是通过最佳策略来进行属性分裂的,这样往往容易在train data上效果好,但是在test d...
  • xbinworld
  • xbinworld
  • 2016-01-03 21:47
  • 11626

机器学习之Boosting小记

机器学习之Boosting小记
  • sp_programmer
  • sp_programmer
  • 2015-04-16 10:30
  • 936

机器学习boosting算法—梯度提升树(GBDT)

1 回归树算法分析 Adaboost算法是提升树的特殊情况,主要用于分类问题,对于回归问题怎么处理呢?? 已知一个训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\},假设输入空间为χ\chi,如果...
  • ice_actor
  • ice_actor
  • 2018-01-19 15:20
  • 25

机器学习(五):Bagging与Boosting

https://www.cs.rit.edu/~rlaz/prec20092/slides/Bagging_and_Boosting.pdf https://neilxu.gitbooks.io/mlnb/content/random_forests.html Bagging Baggi...
  • cdj0311
  • cdj0311
  • 2016-09-30 16:04
  • 458

机器学习----集成学习(Boosting)

Boosting是一族可将弱学习器提升为强学习器的算法。这族算法的工作机制类似: 先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的样本在后面受到更多关注。AdaBoost一直觉得AdaBoost这个名字起得好呀,全拼是Adaptive Boost...
  • Love_wanling
  • Love_wanling
  • 2017-04-19 16:05
  • 452

【机器学习】Boosting&Adaboost

Boosting由来Kearns & Valiant (1984) PAC学习模型 提出问题: 1) 强学习算法:存在一个多项式时间的学习算法以识别一组概念,且识别的正确率很高。 2) 弱学习算法:识别一组概念的正确率仅比随机猜测略好。 3) 弱学习器与强学习器的等价问题。如果两...
  • evillist
  • evillist
  • 2017-03-15 11:21
  • 367

机器学习读书笔记(集成学习Boosting方法)

你说这个A分类方法好,我说那个B分类方法好。干脆我们整合起来一起使用吧!!!(不是所有整合一定好,后面会介绍)有些人啊,就喜欢辩论。总坚持自己的分类器特别好,但事实上。你所谓的“好”仅仅是在你所接触的数据集上。在持续辩论达到白热化的时候,一个睡觉的傻子喊了一句话:"瞎吵吵什么?你们不会将这...
  • dajiabudongdao
  • dajiabudongdao
  • 2016-07-11 15:41
  • 540

机器学习-->集成学习-->Bagging,Boosting,Stacking

在一些数据挖掘竞赛中,后期我们需要对多个模型进行融合以提高效果时,常常会用到Bagging,Boosting,Stacking等这几个框架算法。下面就来分别详细讲述这三个框架算法。这里我们只做原理上的讲解,不做数学上推导。集成学习在机器学习算法中具有较高的准去率,不足之处就是模型的训练过程可能比较复...
  • Mr_tyting
  • Mr_tyting
  • 2017-06-09 14:56
  • 2827
    机器学习公众号

    关注微信公众号,专

    为机器学习入门者
    个人资料
    • 访问:228445次
    • 积分:4739
    • 等级:
    • 排名:第7252名
    • 原创:115篇
    • 转载:14篇
    • 译文:3篇
    • 评论:787条
    博客专栏
    最新评论