随机森林属于集成学习(ensemble learning)中的bagging算法,在集成算法中主要分为bagging算法与boosting算法,

Bagging算法(套袋发)

  • bagging的算法过程如下:

    1. 从原始样本集中使用Bootstraping 方法随机抽取n个训练样本,共进行k轮抽取,得到k个训练集(k个训练集之间相互独立,元素可以有重复)。
    2. 对于n个训练集,我们训练k个模型,(这个模型可根据具体的情况而定,可以是决策树,knn等)
    3. 对于分类问题:由投票表决产生的分类结果;对于回归问题,由k个模型预测结果的均值作为最后预测的结果(所有模型的重要性相同)。

      Boosting(提升法)

  • boosting的算法过程如下:
    1. 对于训练集中的每个样本建立权值wi,表示对每个样本的权重, 其关键在与对于被错误分类的样本权重会在下一轮的分类中获得更大的权重(错误分类的样本的权重增加)。
    2. 同时加大分类 误差概率小的弱分类器的权值,使其在表决中起到更大的作用,减小分类误差率较大弱分类器的权值,使其在表决中起到较小的作用。每一次迭代都得到一个弱分类器,需要使用某种策略将其组合,最为最终模型,(adaboost给每个迭代之后的弱分类器一个权值,将其线性组合作为最终的分类器,误差小的分类器权值越大。)

      Bagging和Boosting 的主要区别

  • 样本选择上: Bagging采取Bootstraping的是随机有放回的取样,Boosting的每一轮训练的样本是固定的,改变的是买个样的权重。
  • 样本权重上:Bagging采取的是均匀取样,且每个样本的权重相同,Boosting根据错误率调整样本权重,错误率越大的样本权重会变大
  • 预测函数上:Bagging所以的预测函数权值相同,Boosting中误差越小的预测函数其权值越大。
  • 并行计算: Bagging 的各个预测函数可以并行生成;Boosting的各个预测函数必须按照顺序迭代生成.

    将决策树与以上框架组合成新的算法

  • Bagging + 决策树 = 随机森林
  • AdaBoost + 决策树 = 提升树
  • gradient + 决策树 = GDBT

决策树

常用的决策树有ID3, C4.5 ,CART三种. 三种算法模型构架相似,只是采用了不同的指标

首先介绍ID3算法

  • 基于奥卡姆剃刀原理,即用尽量较少的东西做更多的东西,ID3算法即interactive Dichotomiser3,迭代二叉树3代,
  • 核心思想:以信息增益来度量属性的选择,选择分裂后信息增益最大的属性进行分类。
  • 信息增益:属性选择中一个重要的指标,它定义为一个属性能够为分类带来的多少信息,带来的信息越多,该属性也就越重要,而信息量则可以用熵表示。
  • 熵的定义:信息量的期望值,表示随机变量不确定性的度量,设X是一个取有限个值的离散随机变量,其概率分布为P(X=xi)=pi,则随机变量X的熵定义为
    其中,对数以2为底或者以e为底,分布其单位是比特(bit)或者纳特(nat)
  • 熵越大,随机变量的不确定性就越大,当随机变量只取两个值,即X的分布式,其熵为,分布为伯努利分布时,熵与概率的关系如图:,p=0.5时,H(p)=1,熵取值最大,随机变量的不确定性越大,当p=0或者1时,H(p)=0随机变量完全没有不确定性.

    条件熵

  • 设有随机变量(X,Y),其联合概率分布为,条件熵H(Y|X)表示在已知随机变量X的条件下,随机变量随Y的不确定性。随机变量X给定的条件下,随机变量Y的条件熵(conditional entropy)(H(Y|X)),定义为X的给定条件下Y的条件概率分布的熵对X的数学期望。
  • 这里p=P(X=xi),i=1,2,3...n,如果是在决策树里面的话,就是类标概率与该类标下在该变量下分裂下的熵的乘积之和。
  • 当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵与条件熵分别称为经验熵与经验条件熵
  • 此时,信息增益(information gain)表示得知特征X的信息而使得类Y的信息的不确定性减少的程度,

    信息增益

  • 特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D),与特征A给定条件下D的经验条件熵H(D|A)之差 g(D,A)=H(D)-H(D|A)
  • 决策树学习应用信息增益准则可以用于特征选择,给定的训练集D和特征A,经验熵H(D)标书对数据集D进行分类的不确定性,而经验条件熵H(D|A)表示在特征A给定的情况下,对数据集D进行分类的不确定性。信息增益就是表示特征A使得对数据集D的分类的不确定性的减少程度。对于数据集D而言,信息增益依赖于特征,不同特征往往具有不同的信息增益,信息增益大的特征具有更强的分类能力。
  • 未完待续

Bagging和Boosting的概念与区别的更多相关文章

  1. bagging 和boosting的概念和区别

    1.先弄清楚模型融合中的投票的概念 分为软投票和硬投票,硬投票就是几个模型预测的哪一类最多,最终模型就预测那一类,在投票相同的情况下,投票结果会按照分类器的排序选择排在第一个的分类器结果.但硬投票有个 ...

  2. Bagging和Boosting 概念及区别

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

  3. Bagging和Boosting 概念及区别(转)

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

  4. Bagging和Boosting的区别(面试准备)

    Baggging 和Boosting都是模型融合的方法,可以将弱分类器融合之后形成一个强分类器,而且融合之后的效果会比最好的弱分类器更好. Bagging: 先介绍Bagging方法: Bagging ...

  5. Bagging和Boosting的区别

    转:http://www.cnblogs.com/liuwu265/p/4690486.html Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的 ...

  6. 随机森林(Random Forest),决策树,bagging, boosting(Adaptive Boosting,GBDT)

    http://www.cnblogs.com/maybe2030/p/4585705.html 阅读目录 1 什么是随机森林? 2 随机森林的特点 3 随机森林的相关基础知识 4 随机森林的生成 5 ...

  7. Bagging和Boosting的介绍及对比

    "团结就是力量"这句老话很好地表达了机器学习领域中强大「集成方法」的基本思想.总的来说,许多机器学习竞赛(包括 Kaggle)中最优秀的解决方案所采用的集成方法都建立在一个这样的假 ...

  8. 集成学习---bagging and boosting

    作为集成学习的二个方法,其实bagging和boosting的实现比较容易理解,但是理论证明比较费力.下面首先介绍这两种方法. 所谓的集成学习,就是用多重或多个弱分类器结合为一个强分类器,从而达到提升 ...

  9. 以Random Forests和AdaBoost为例介绍下bagging和boosting方法

    我们学过决策树.朴素贝叶斯.SVM.K近邻等分类器算法,他们各有优缺点:自然的,我们可以将这些分类器组合起来成为一个性能更好的分类器,这种组合结果被称为 集成方法 (ensemble method)或 ...

随机推荐

  1. SpringMVC -- 梗概--源码--贰--mvc:annotation-driven

    1>在springMVC的处理流程中,有两个重要组件:HandlerMapping和HandlerAdapter 分别负责解析Handler和执行Handler 2>如果配置了<mv ...

  2. SpringBoot Cmd运行Jar文件指定active文件的命令如下

    SpringBoot Cmd运行Jar文件指定active文件的命令如下 SpringBoot 命令行指定配置文件运行 ================================ ©Copyri ...

  3. 浅谈PostgreSQL的索引

    1. 索引的特性 1.1 加快条件的检索的特性 当表数据量越来越大时查询速度会下降,在表的条件字段上使用索引,快速定位到可能满足条件的记录,不需要遍历所有记录. create table t(id i ...

  4. AE插件开发的一些总结

    首先会遇到第一个问题,为什么输出的aex文件不在bin目录下,而在别的目录下.其实问题出在链接器的设置里.把这个改成自己想要的目录就OK 然后一些object的报错,直接把警告等级改成0就可以了.属性 ...

  5. 常见C语言编译错误解析【转】

    C语言编译错误信息及说明1. 在函数 ‘transform’ 中:7: 错误:expected ‘;’ before ‘{’ token    解释:‘{’之前的某个语句缺少分号‘;’: 2. 在函数 ...

  6. mysql check约束无效

    转自http://blog.csdn.net/maxint64/article/details/8643288 今天在mysql中尝试使用check约束时,才知道在MySQL中CHECK约束是无效的, ...

  7. Ubuntu VMware出现提示No 3D support is available的解决方法

    像我这样的Ubuntu脑残粉,电脑上只安装了Ubuntu,但是有时又必须得使用Windows,于是就装了一个Windows虚拟机,使用的是VMware,问题出在默认设置下启动虚拟机无法启动3D硬件加速 ...

  8. 合格PHP工程师的知识结构

    摘自http://www.cnblogs.com/ftx5410/p/7204672.html 一下子就想了这么多,后续想到了再补,请大家多多指教.其实编程使用什么语言不重要,最重要的是思想,编程的思 ...

  9. thinkphp3.2 实现上一篇和下一篇

    现在在做一个能够在内容页点击上一篇可以看到上一篇,点击下一篇可以看到下一篇. 首先http://www.mmkb.com/zhendao/index/news_show?code=98 现在code= ...

  10. Foxmail邮箱最新应用指南 --如何使用「邮件标签」?

    Foxmail邮箱最新应用指南--如何使用「邮件标签」? 最近看到很多的朋友收发电子邮件,现在我们帮助讲解下foxmail的标签功能,可以帮助我们整理我们的邮箱,让重要信息浮出水面. 1.鼠标右键邮件 ...