bagging_bagging算法 - CSDN
  • bagging算法

    2020-07-26 23:32:59
    Bagging的策略: 从样本集中用Bootstrap采样选出n个样本 在所有属性上 对这n个样本建立分类器(CART or SVM or ) 重复以上两步m次 i e build m个分类器(CART or SVM or ) 将数据放在这m个分类器上跑 最后vote看...
  • bagging介绍

    千次阅读 2018-12-05 19:01:09
    之前写过boosting的博客,这篇是关于bagging的。 训练 bagging采用自助采样(bootstrap sampling) N个样本,有放回随机抽样N次,一次实验大约可以采集到63%样本。如果进行T次实验,得到T笔数据,分别训练一个模型...

    之前写过boosting的博客,这篇是关于bagging的。

    • 训练

    bagging采用自助采样(bootstrap sampling)

    N个样本,有放回随机抽样N次,一次实验大约可以采集到63%样本。如果进行T次实验,得到T笔数据,分别训练一个模型。

    包外估计(out of bag estimate):对于剩下的37%数据,可以用于validation。

    • 预测

    结果组合采用的策略:分类问题可以voting,多数表决;回归问题采用平均加权。或者再来一层stacking

    • 随机森林

    随机森林的基学习器是决策树,并且在样本随机抽样的基础上,RF引入特征属性随机抽样,对于含有d个属性的某个节点,一般的决策树算法在树节点分裂的时候,是从d个属性里选择一个最优的属性;而RF则首先抽样k个属性,然后在这k个属性选取最优的属性。

    展开全文
  • Bagging你真的懂吗

    2019-10-09 19:06:48
    Bagging 概念 Bagging算法 (英语:Bootstrap aggregating,引导聚集算法),又称装袋算法,是一种重要的集成学习方法。最初由Leo Breiman于1996年提出。 用途 Bagging算法可用于分类、回归。 优点 提高其准确率、...

    Bagging

    • 概念
      Bagging算法 (英语:Bootstrap aggregating,引导聚集算法),又称装袋算法,是一种重要的集成学习方法。最初由Leo Breiman于1996年提出。

    • 用途
      Bagging算法可用于分类、回归。

    • 优点
      提高其准确率、稳定性的同时,通过降低结果的方差,避免过拟合的发生。
      减少噪音的影响,体现样本真实的分布情况,见下图:
      在这里插入图片描述

    • 工作机理
      通过多次多轮的sampling with replacement,构建多个分类器或回归,最终的预测结果为样本在这多个学习器上的结果平均值(投票少数服从多数),运行过程见下图:
      在这里插入图片描述

    • 并行性
      由于各学习器之间是独立存在,因此,可并行处理。

    展开全文
  • Bagging算法原理

    千次阅读 2019-03-14 11:36:56
    Bagging是并行式集成学习方法的典型代表,它直接基于自助采样法。给定包含m个样本的数据集,我们先随机取出一个样本放入采样中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中。这样,经过m次随机...

      Bagging是并行式集成学习方法的典型代表,它直接基于自助采样法。给定包含m个样本的数据集,我们先随机取出一个样本放入采样中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中。这样,经过m次随机采样操作,我们得到含m个样本的采样集,初始训练集中有的样本在采样集里多次出现,有的则从未出现。初始训练集中约有63.2%的样本出现在采样集中。

      照这样,我们可采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。这就是Bagging的基本流程。在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法。若分类预测时出现两个收到同样票数的情形,则最简单的做法是随机选择一个,也可进一步考察学习器投票的置信度来确定最终胜者。

      与标准AdaBoost只适用于二分类任务不同,Bagging能不经修改地用于多分类、回归等任务。

      值得一提的是,自助采样过程还给Bagging带来了另一个优点:由于每个基学习器只使用了初始训练集中约63.2%的样本,剩下的36.8%的样本可用作验证集对泛化性能进行“包外估计”,为此,记录每个基学习器的训练样本。不妨令\large D_t表示\large h_t实际使用的训练样本集,令\large H^{oob}(x)表示对样本\large x的包外预测,即仅考虑那些未使用\large x训练的基学习器在\large x上的预测,有

    \large H^{oob}(x)=\mathop\arg\max_{y\in Y}\sum_{t=1}^T\mathbb{I}(h_t(x)=y)\mathbb{I}(x\notin D_t)

    则Bagging泛化误差的包外估计为:

    \large \epsilon ^{oob}=\frac{1}{|D|}\sum_{(x,y)\in D}\mathbb{I}(H^{oob}(x)\neq y)

      事实上,包外样本还有许多其他用途,例如当基学习器是决策树时,可使用包外样本来辅助剪枝,或用于估计决策树中各节点的后验概率以辅助对零训练样本节点的处理;当学习器是神经网络时,可使用包外样本来辅助早期停止以减小过拟合风险。

      从偏差-方差的角度来看,Bagging主要关注降低方差,因此它在不剪枝决策树、神经网络等容易受样本扰动的学习器上效果更为明显。

    展开全文
  • Bagging

    千次阅读 2018-04-12 09:06:25
    上海站 | 高性能计算之GPU ...Bagging是Bootstrap Aggregating的英文缩写,刚接触的童鞋不要误认为bagging是一种算法,Bagging和Boosting都是ensemble learing 中的学习框架,代表着不同的思想。boosting派系,它的特点
        

    上海站 | 高性能计算之GPU CUDA培训

    4月13-15日640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1三天密集式学习  快速带你晋级阅读全文>


    正文共4133个字,3张图,预计阅读时间10分钟。


    Bagging是Bootstrap Aggregating的英文缩写,刚接触的童鞋不要误认为bagging是一种算法,Bagging和Boosting都是ensemble learing 中的学习框架,代表着不同的思想。


    • boosting派系,它的特点是各个弱学习器之间有依赖关系。

    • bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合。


    Bagging远离

    640?wx_fmt=png


    从上图可以看出,Bagging的弱学习器之间的确没有boosting那样的联系。它的特点在“随机采样”。那么什么是随机采样?


    随机采样(bootsrap)就是从我们的训练集里面采集固定个数的样本,但是每采集一个样本后,都将样本放回。也就是说,之前采集到的样本在放回后有可能继续被采集到。对于我们的Bagging算法,一般会随机采集和训练集样本数m一样个数的样本。这样得到的采样集和训练集样本的个数相同,但是样本内容不同。如果我们对有m个样本训练集做T次的随机采样,则由于随机性,T个采样集各不相同。


    注意到这和GBDT的子采样是不同的。GBDT的子采样是无放回采样,而Bagging的子采样是放回采样


    对于一个样本,它在某一次含m个样本的训练集的随机采样中,每次被采集到的概率是$\frac { 1 }{ m } $,不被采集到的概率为1-$\frac { 1 }{ m } $,如果m次都没被采样到的概率为$({ 1-\frac { 1 }{ m } ) }^{ m }$,当$m\rightarrow \infty  $时,$lim_{ m\rightarrow \infty  }{ (1-\frac { 1 }{ m } ){  }^{ m\  } } $约定于$ \frac { 1 }{ e } $=0.368,也就是说,在bagging的每轮随机采样中,训练集中大约有36.8%的数据没有被采样集采集中。自助采样会改变数据的初始分布导致引入估计偏差。


    对于这部分大约36.8%的没有被采样到的数据,我们常常称之为袋外数据(Out Of Bag, 简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。


    bagging对于弱学习器没有限制,这和Adaboost一样。但是最常用的一般也是决策树和神经网络。


    bagging的集合策略也比较简单,对于分类问题,通常使用简单投票法,得到最多票数的类别或者类别之一为最终的模型输出。对于回归问题,通常使用简单平均法,对T个弱学习器得到的回归结果进行算术平均得到最终的模型输出。


    由于Bagging算法每次都进行采样来训练模型,因此泛化能力很强,对于降低模型的方差很有作用。当然对于训练集的拟合程度就会差一些,也就是模型的偏倚会大一些。


    Bagging算法流程


    640?wx_fmt=png


    上一节我们对bagging算法的原理做了总结,这里就对bagging算法的流程做一个总结。相对于Boosting系列的Adaboost和GBDT,bagging算法要简单的多。


    输入为样本集D={(x,y1),(x2,y2),...(xm,ym  )}      ,弱学习器算法, 弱分类器迭代次数T。


    输出为最终的强分类器f(x)


    1. 对于t=1,2...,T:

    • a)对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集Dm

    • b)用采样集Dm训练第m个弱学习器Gm(x)


    2、如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。


    随机森林算法


    理解了bagging算法,随机森林(Random Forest,以下简称RF)就好理解了。它是Bagging算法的进化版,也就是说,它的思想仍然是bagging,但是进行了独有的改进。我们现在就来看看RF算法改进了什么。


    首先,RF使用了CART决策树作为弱学习器,这让我们想到了梯度提升树GBDT。第二,在使用决策树的基础上,RF对决策树的建立做了改进,对于普通的决策树,我们会在节点上所有的n个样本特征中选择一个最优的特征来做决策树的左右子树划分,但是RF通过随机选择节点上的一部分样本特征,这个数字小于n,假设为${ {  }{ n }{ sub } } $,然后在这些随机选择的${ {  }{ n }{ sub } } $个样本特征中,选择一个最优的特征来做决策树的左右子树划分。这样进一步增强了模型的泛化能力。


    如果${ {  }{ n }{ sub } } $=n,则此时RF的CART决策树和普通的CART决策树没有区别。${ {  }{ n }{ sub } } $越小,则模型越健壮,当然此时对于训练集的拟合程度会变差。也就是说${ {  }{ n }{ sub } } $越小,模型的方差会减小,但是偏倚会增大。在实际案例中,一般会通过交叉验证调参获取一个合适的${ {  }{ n }{ sub } } $值。


    除了上面两点,RF和普通的bagging算法没有什么不同, 下面简单总结下RF的算法。


    • 输入为样本集D={(x,y1),(x2,y2),...(xm,ym)} ,弱分类器迭代次数T。

    • 输出为最终的强分类器f(x)

    • 1)对于t=1,2...,T:


    a)对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集Dm。


    b)用采样集Dm训练第m个决策树模型Gm(x),在训练决策树模型的节点的时候, 在节点上所有的样本特征中选择一部分样本特征, 在这些随机选择的部分样本特征中选择一个最优的特征来做决策树的左右子树划分。


    如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。

    随机森林的推广


    由于RF在实际应用中的良好特性,基于RF,有很多变种算法,应用也很广泛,不光可以用于分类回归,还可以用于特征转换,异常点检测等。下面对于这些RF家族的算法中有代表性的做一个总结。


    extra trees


    extra trees是RF的一个变种, 原理几乎和RF一模一样,仅有区别有:


    1) 对于每个决策树的训练集,RF采用的是随机采样bootstrap来选择采样集作为每个决策树的训练集,而extra trees一般不采用随机采样,即每个决策树采用原始训练集。


    2) 在选定了划分特征后,RF的决策树会基于信息增益,基尼系数,均方差之类的原则,选择一个最优的特征值划分点,这和传统的决策树相同。但是extra trees比较的激进,他会随机的选择一个特征值来划分决策树。


    从第二点可以看出,由于随机选择了特征值的划分点位,而不是最优点位,这样会导致生成的决策树的规模一般会大于RF所生成的决策树。也就是说,模型的方差相对于RF进一步减少,但是偏倚相对于RF进一步增大。在某些时候,extra trees的泛化能力比RF更好。


    totally random trees embedding


    Totally Random Trees Embedding(以下简称 TRTE)是一种非监督学习的数据转化方法。它将低维的数据集映射到高维,从而让映射到高维的数据更好的运用于分类回归模型。我们知道,在支持向量机中运用了核方法来将低维的数据集映射到高维,此处TRTE提供了另外一种方法。


    TRTE在数据转化的过程也使用了类似于RF的方法,建立T个决策树来拟合数据。当决策树建立完毕以后,数据集里的每个数据在T个决策树中叶子节点的位置也定下来了。比如我们有3颗决策树,每个决策树有5个叶子节点,某个数据特征x划分到第一个决策树的第2个叶子节点,第二个决策树的第3个叶子节点,第三个决策树的第5个叶子节点。则x映射后的特征编码为(0,1,0,0,0,     0,0,1,0,0,     0,0,0,0,1), 有15维的高维特征。这里特征维度之间加上空格是为了强调三颗决策树各自的子编码。


    映射到高维特征后,可以继续使用监督学习的各种分类回归算法了。


    isolation forest


    Isolation Forest(以下简称IForest)是一种异常点检测的方法。它也使用了类似于RF的方法来检测异常点。


    对于在T个决策树的样本集,IForest也会对训练集进行随机采样,但是采样个数不需要和RF一样,对于RF,需要采样到采样集样本个数等于训练集个数。但是IForest不需要采样这么多,一般来说,采样个数要远远小于训练集个数?为什么呢?因为我们的目的是异常点检测,只需要部分的样本我们一般就可以将异常点区别出来了。


    对于每一个决策树的建立, IForest采用随机选择一个划分特征,对划分特征随机选择一个划分阈值。这点也和RF不同。


    另外,IForest一般会选择一个比较小的最大决策树深度max_depth,原因同样本采集,用少量的异常点检测一般不需要这么大规模的决策树。


    对于异常点的判断,则是将测试样本点x拟合到T颗决策树。计算在每颗决策树上该样本的叶子节点的深度ht(x)。,从而可以计算出平均高度h(x)。此时我们用下面的公式计算样本点x的异常概率。


    随机森林小结


    RF的算法原理也终于讲完了,作为一个可以高度并行化的算法,RF在大数据时候大有可为。 这里也对常规的随机森林算法的优缺点做一个总结。


    RF的主要优点有:


    • 训练可以高度并行化,对于大数据时代的大样本训练速度有优势。个人觉得这是的最主要的优点。

    • 由于可以随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍然能高效的训练模型。

    • 在训练后,可以给出各个特征对于输出的重要性

    • 由于采用了随机采样,训练出的模型的方差小,泛化能力强。

    • 相对于Boosting系列的Adaboost和GBDT, RF实现比较简单。

    • 对部分特征缺失不敏感。


    RF的主要缺点有:


    • 在某些噪音比较大的样本集上,RF模型容易陷入过拟合。

    • 取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果


    参考链接:

    http://blog.csdn.net/sun_shengyun/article/details/54616386
    我的github链接:https://github.com/TracyMcgrady6


    原文链接:https://www.jianshu.com/p/d270af43f043
    源码github地址:https://github.com/TracyMcgrady6/Distribute_MNIST
    个人博客地址:
    http://mcgrady.cn


    查阅更为简洁方便的分类文章以及最新的课程、产品信息,请移步至全新呈现的“LeadAI学院官网”:

    www.leadai.org


    请关注人工智能LeadAI公众号,查看更多专业文章

    640?wx_fmt=jpeg

    大家都在看

    640.png?

    LSTM模型在问答系统中的应用

    基于TensorFlow的神经网络解决用户流失概览问题

    最全常见算法工程师面试题目整理(一)

    最全常见算法工程师面试题目整理(二)

    TensorFlow从1到2 | 第三章 深度学习革命的开端:卷积神经网络

    装饰器 | Python高级编程

    今天不如来复习下Python基础

    展开全文
  • Bagging 简述

    千次阅读 2017-07-07 09:25:48
    Bagging 特点 sklearn 中 Bagging 使用 Bagging 和 Boosting 的区别 bagging:bootstrap aggregating 的缩写。 是一种并行式集成学习方法,可用于二分类,多分类,回归等任务。基本流程: 对一个包含 m 个样本的...
  • 机器学习中的bagging技巧

    千次阅读 2015-07-10 17:00:03
    bagging的作用bagging是增强原算法的一种手段。神经网络、分类问题、回归问题、线性回归中的子集选择问题、k最近邻算法都可以使用bagging来加强。使用bagging加强后的算法的性能会出现一些有规律的变化。一般而言,...
  • (二)bagging 方法

    千次阅读 2019-06-05 13:16:10
    作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 在之前的文章中,你看到了不同的分类算法以及如何正确验证和评估模型质量的技术。现在,我假设你已经为你的问题选择了最佳模型,并且正在努力进一步...
  • bagging实现

    2019-05-19 22:56:34
    重复抽样 from sklearn import neighbors from sklearn import datasets from sklearn.ensemble import BaggingClassifier from sklearn import tree from sklearn.model_selection import train_test_split ...
  • lightGBM中,Bagging的工作机制是什么? 官方文档中对这2个参数的介绍: bagging_fraction
  • bagging和随机森林的原理和区别

    千次阅读 2018-02-18 12:12:09
    来自西瓜书 区别在于,随机森林在采样时不仅“重采样”,而且只选了部分的“列”(特征)。好处就是第三张图的上面的三个小图,可以出来更多的线来用。 ...
  • bagging和dropout

    千次阅读 2018-05-15 23:08:56
    bagging中文意思是集成学习,通过在一个样本中随机选择一些样本构成训练数据集,训练出一个弱学习器,所谓的弱学习器就是分类的准确率稍微大于50%。重复N次,就可以得到N个弱学习器,最后通过这N个学习器进行投票,...
  • Bagging是Bootstrap Aggregating 的简称,意思就是再取样 (Bootstrap) 然后在每个样本上训练出来的模型取平均,所以是降低模型的variance. Bagging 比如Random Forest 这种先天并行的算法都有这个效果。Boosting 则...
  • Bagging 和Boosting的区别 https://www.cnblogs.com/earendil/p/8872001.html RF、GBDT、XGBoost https://blog.csdn.net/qq_28031525/article/details/70207918
  • 说明R的adabag包对bagging与boosting进行支持,其中对于bagging算法adebag包提供了Breiman bagging算法,在Breiman bagging中首次提出子多版本分类器的理念,得到聚合分类器。
  • 集成学习法之bagging方法和boosting方法
  • 集成学习中有两类方法,bagging和boosting。bagging使用众多弱学习器进行并行拟合,不同的学习器之间取长补短,能达到甚至超越强学习器的效果。bagging的有效实现是随机森林算法,也是在数据挖掘比赛中常使用的基础...
  • Bagging算法

    千次阅读 2019-12-04 23:16:40
    另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合。 Bagging算法(英语:Bootstrap aggregating,引导聚集算法),又称装袋算法,是机器学习领域的一种团体学习算法。最初由Leo Breiman...
  • 基于sklearn实现Bagging算法(python)

    千次阅读 2018-09-12 15:43:07
    本文使用的数据类型是数值型,每一个样本6个特征表示,所用的数据如图所示: ...实现Bagging算法的代码如下: from sklearn.ensemble import BaggingClassifier from sklearn.tree import DecisionTreeClass...
  • Bagging与Boosting的区别

    千次阅读 2018-08-31 22:16:27
    Bagging与Boosting的区别: 取样方式(样本权重):Bagging是均匀选取,样本的权重相等,Boosting根据错误率取样,错误率越大则权重越大 训练集的选择:Bagging随机选择训练集,训练集之间相互独立,Boosting的各...
1 2 3 4 5 ... 20
收藏数 15,751
精华内容 6,300
关键字:

bagging