一、 什么是集成学习

集成学习是通过构建并结合多个学习器来完成学习任务的一类算法。

根据个体学习器(基学习器)之间是否存在强依赖关系可将集成学习分为两类:

  1. Boosting

个体学习器之间存在强依赖关系,必须串行生成的序列化方法。

2. Bagging

个体学习器之间不存在强依赖关系,可同时生成的并行化方法。

二、 Bagging和Boosting算法族介绍

1、Bagging(Bootstrap AGGregating, 装袋)算法族介绍

Bagging 是一种个体学习器之间不存在强依赖关系,可同时生成的并行式集成学习方法。

(1)Bagging算法原理

Bagging即套袋法,是一种采用自助采样法(bootstrap)的集成学习算法。自助采样法是一种有放回的抽样方法,目的为了得到统计量的分布以及置信区间,其算法过程如下:

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

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

(c)对分类问题:将上步得到的k个模型采用投票的方式得到分类结果,若分类预测时两类获得相同票数时,最简单的方法是任选其一;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)

Bagging算法流程请参见图1。

图1 Bagging算法

(2)随机森林(Random Forest, RF)= Bagging + 决策树

图2 随机森林与bagging的关系

随机森林(Random Forest,简称RF)是Bagging的一个扩展变体。RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。

图3 随机森林算法流程

构造随机森林的4个步骤:

(a)假如有N个样本,则有放回的随机选择N个样本(每次随机选择一个样本,然后返回继续选择)。这选择好了的N个样本用来训练一个决策树,作为决策树根节点处的样本。

(b)当每个样本有M个属性时,在决策树的每个节点需要分裂时,随机从这M个属性中选取出m个属性,满足条件m << M。然后从这m个属性中采用某种策略(比如说信息增益)来选择1个属性作为该节点的分裂属性。

(c)决策树形成过程中每个节点都要按照步骤2来分裂(很容易理解,如果下一次该节点选出来的那一个属性是刚刚其父节点分裂时用过的属性,则该节点已经达到了叶子节点,无须继续分裂了)。一直到不能够再分裂为止。注意整个决策树形成过程中没有进行剪枝。

(d)按照步骤a~c建立大量的决策树,这样就构成了随机森林了。

(3)举例解释随机森林

例题:根据已有的训练集已经生成了对应的随机森林,随机森林如何利用某一个人的年龄(Age)、性别(Gender)、教育情况(Highest Educational Qualification)、工作领域(Industry)以及住宅地(Residence)共5个字段来预测他的收入层次。

收入层次 :

    Band 1: Below $40,000

    Band 2: $40,000 – 150,000

    Band 3: More than $150,000

随机森林中每一棵树都可以看做是一棵CART(分类回归树),这里假设森林中有5棵CART树,总特征个数N=5,我们取m=1(这里假设每个CART树对应一个不同的特征)。

CART 1 : Variable Age

CART 2 : Variable Gender

CART 3 : Variable Education

CART 4 : Variable Residence

CART 5 : Variable Industry

我们要预测的某个人的信息如下:

  1. Age : 35 years ; 2. Gender : Male ; 3. Highest Educational Qualification : Diploma holder; 4. Industry : Manufacturing; 5. Residence : Metro.

  根据这五棵CART树的分类结果,我们可以针对这个人的信息建立收入层次的分布情况:

结论:根据以上分析,这个人的收入层次70%是一等,大约24%为二等,6%为三等,所以最终认定该人属于一等收入层次(小于$40,000)。

(4)代码实现随机森林(使用sklearn实现)

感谢阅读,下一篇将给大家介绍Boosting算法族,希望继续关注。

bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)相关推荐

  1. 集成学习(Ensemble Learning),Bagging、Boosting、Stacking

    1 集成学习概述 1.1 概述 在一些数据挖掘竞赛中,后期我们需要对多个模型进行融合以提高效果时,常常会用Bagging,Boosting,Stacking等这几个框架算法,他们不是一种算法,而是一种 ...

  2. gtb分类器参数调节_集成学习(Ensemble Learning)

    集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器. 弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(error rate < 0. ...

  3. EL:集成学习(Ensemble Learning)的概念讲解、问题应用、算法分类、关键步骤、代码实现等相关配图详细攻略

    EL:集成学习(Ensemble Learning)的概念讲解.算法分类.问题应用.关键步骤.代码实现等相关配图详细攻略 目录 集成学习Ensemble Learning 1.集成学习中弱分类器选择 ...

  4. 集成学习(Ensemble Learning)

    在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好).集成学习就是组 ...

  5. 集成学习(ensemble learning)(二)

    文章目录 一.Bagging原理 1.随机采样(BootStrap) 2.弱分类器和结合决策 二.Bagging算法流程 三.随机森林(Random Forest,RF) 1.特点 2.两个" ...

  6. RDKit |基于集成学习(Ensemble learning)预测溶解度

    Ensemble learning 集成学习 集成学习(Ensemble learning)是这样一个过程,按照某种算法生成多个模型,如分类器或者称为专家,再将这些模型按照某种方法组合在一起来解决某个 ...

  7. 集成学习(ensemble learning)(一)

    文章目录 一.集成学习概述 二.个体学习器 三.Boosting 四.Bagging 五.结合策略 1.平均法 2.投票法 3.学习法 (1)核心图解 a.构建新的训练集 b.构建新的测试集 c.最终 ...

  8. 机器学习-集成学习(ensemble learning)

    集成学习ensemble learning:本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务. 可以用两句话形容: 1."三个臭皮匠顶个诸葛亮":一堆 ...

  9. 集成学习(ensemble learning)(四)

    文章目录 一.GBDT概述 二.GDBT原理 1.负梯度拟合 2.GBDT回归算法 3.GBDT分类算法 (1)二元GBDT分类算法 (2)多元GBDT分类算法 4.GBDT常用损失函数 (1)分类任 ...

最新文章

  1. 新人赛《金融风控贷款违约》避坑指南!
  2. this is incompatible with sql_mode=only_full_group_by
  3. github使用教程及小问题
  4. Science封面:三元锂电池安全性差、寿命短问题已解决,来自美国能源部华人团队最新研究...
  5. 请投上您的一票,助力 2019 开源基础设施峰会
  6. 淘商们用数据精细化分析客户群体
  7. dig+host+nslookup 域名解析命令
  8. openshift for linux
  9. android fragment addtobackstack,Android Fragment Back Stack的问题
  10. Vue填坑(v-model和:model)
  11. 乘法器之四( 乘加器(Sum of multiplication))
  12. python df head_在方法()中调用时,Pandas Df.head()不显示?
  13. 怎么调用anaconda安装的pip_对于学python的小伙伴来到底该不该安装andconda
  14. 【2019杭电多校第二场1005 = HDU6595】Everything Is Generated In Equal Probability(期望-递推)
  15. win10屏幕保护色设置
  16. 10款超牛Vim插件,爱不释手了
  17. 利用word2007插入参考文献
  18. Mac外接显示器问题解决
  19. 分布式部署 Zabbix 监控平台
  20. 关于留数法在自控和现控中的应用

热门文章

  1. strcore.cpp(156) 内存泄漏
  2. 【C#复习总结】细说表达式树
  3. 使用Spark分析拉勾网招聘信息(四): 几个常用的脚本与图片分析结果
  4. 【Android】LMK 工作机制
  5. 14个HTML5实现的效果合集
  6. mySql 修改字段名
  7. 三种跨线程控件访问方法
  8. FCKeditor集锦
  9. 基于ffmpeg入门学习相关的资料
  10. Android下将图片载入到内存中