在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。

根据下列算法而建造每棵树 :

  • 1.   用M来表示训练用例(样本)的个数,N表示特征数目。
  • 2.   输入特征数目n,用于确定决策树上一个节点的决策结果;其中n应远小于N。
  • 3.   从M个训练用例(样本)中以有放回抽样的方式,取样k次,形成一个训练集(即bootstrap取样),并用未抽到的用例(样本)作预测,评估其误差。
  • 4.   对于每一个节点,随机选择n个特征,每棵决策树上每个节点的决定都是基于这些特征确定的。根据这n个特征,计算其最佳的分裂方式。
  • 5.   每棵树都会完整成长而不会剪枝,这有可能在建完一棵正常树状分类器后会被采用。
  • 6.   最后测试数据,根据每棵树,以多胜少方式决定分类。

在构建随机森林时,需要做到两个方面:数据的随机性选取,以及待选特征的随机选取,来消除过拟合问题。

首先,从原始的数据集中采取有放回的抽样,构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。第二,利用子数据集来构建子决策树,将这个数据放到每个子决策树中,每个子决策树输出一个结果。最后,如果有了新的数据需要通过随机森林得到分类结果,就可以通过对子决策树的判断结果的投票,得到随机森林的输出结果了。(假设随机森林中有3棵子决策树,2棵子树的分类结果是A类,1棵子树的分类结果是B类,那么随机森林的分类结果就是A类)

与数据集的随机选取类似,随机森林中的子树的每一个分裂过程并未用到所有的待选特征,而是从所有的待选特征中随机选取一定的特征,之后再在随机选取的特征中选取最优的特征。这样能够使得随机森林中的决策树都能够彼此不同,提升系统的多样性,从而提升分类性能。

优点:

随机森林的既可以用于回归也可以用于分类任务,并且很容易查看模型的输入特征的相对重要性。随机森林算法被认为是一种非常方便且易于使用的算法,因为它是默认的超参数通常会产生一个很好的预测结果。超参数的数量也不是那么多,而且它们所代表的含义直观易懂。

随机森林有足够多的树,分类器就不会产生过度拟合模型。

缺点:

由于使用大量的树会使算法变得很慢,并且无法做到实时预测。一般而言,这些算法训练速度很快,预测十分缓慢。越准确的预测需要越多的树,这将导致模型越慢。在大多数现实世界的应用中,随机森林算法已经足够快,但肯定会遇到实时性要求很高的情况,那就只能首选其他方法。当然,随机森林是一种预测性建模工具,而不是一种描述性工具。也就是说,如果您正在寻找关于数据中关系的描述,那建议首选其他方法。

随机森林的“随机”在哪?相关推荐

  1. 为什么极度随机树比随机森林更随机?这个极度随机的特性有什么好处?在训练阶段、极度随机数比随机森林快还是慢?

    为什么极度随机树比随机森林更随机?这个极度随机的特性有什么好处?在训练阶段.极度随机数比随机森林快还是慢? ExtRa Trees是Extremely Randomized Trees的缩写,意思就是 ...

  2. matlab中随机森林实现,随机森林实现 MATLAB

    matlab 中随机森林工具箱的下载地址: http://code.google.com/p/randomforest-matlab/downloads/detail?name=Windows-Pre ...

  3. 利用mysql建立随机森林_随机森林算法实例 - osc_4imme0wh的个人空间 - OSCHINA - 中文开源技术交流社区...

    根据成年人数据集来预测一个人的收入 1.准备数据集 我下载好了一个成年人数据集,从百度云下载 链接:https://pan.baidu.com/s/10gC8U0tyh1ERxLhtY8i0bQ 提取 ...

  4. 在envi做随机森林_随机森林原理

    随机森林由Leo Breiman(2001)提出的一种分类算法,它通过自助法(bootstrap)重采样技术,从原始训练样本集N中有放回地重复随机抽取n个样本生成新的训练样本集合训练决策树,然后按以上 ...

  5. 在envi做随机森林_随机森林原理介绍与适用情况(综述篇)

    一句话介绍 随机森林是一种集成算法(Ensemble Learning),它属于Bagging类型,通过组合多个弱分类器,最终结果通过投票或取均值,使得整体模型的结果具有较高的精确度和泛化性能.其可以 ...

  6. 12_信息熵,信息熵公式,信息增益,决策树、常见决策树使用的算法、决策树的流程、决策树API、决策树案例、随机森林、随机森林的构建过程、随机森林API、随机森林的优缺点、随机森林案例

    1 信息熵 以下来自:https://www.zhihu.com/question/22178202/answer/161732605 1.2 信息熵的公式 先抛出信息熵公式如下: 1.2 信息熵 信 ...

  7. 算gini 随机森林_随机森林

    一 .简介 随机森林是利用多棵树对样本进行训练并预测的一种分类器. 随机选择特征数目,随机选择训练数据,对同一个预测数据取出现次数最多的预测标签为最终预测标签. 随机森林实际上是一种特殊的baggin ...

  8. 3.1、随机森林之随机森林实例

    随机森林 junjun 2016年2月8日 随机森林实例 Markdown脚本及数据集:http://pan.baidu.com/s/1bnY6ar9 实例一.用随机森林对鸢尾花数据进行分类 #1.加 ...

  9. r语言随机森林_随机森林+时间序列(R语言版)

    参考自: https://www.statworx.com/at/blog/time-series-forecasting-with-random-forest/ https://www.r-blog ...

  10. matlab随机森林特征选择,随机森林特征选择

    摘要: 现如今,数据规模快速增长,使得如何从繁杂无序的数据中提取有用信息,成为摆在大家面前的一个课题.数据挖掘技术应运而生,凭借其优越性能已经被广泛的应用于复杂数据的分析.同时,机器学习技术日趋成熟和 ...

最新文章

  1. HNOI2019游记
  2. OD里alt+F9和Ctrl+F9和shift+F9的区别
  3. React中添加注释
  4. eof在c语言中表示什么_日语中的鍵为什么既能表示“钥匙”也能表示“锁”?...
  5. Simple2D-24 Sprite 渲染树
  6. 未定义标识符CV_HAAR_SCALE_IMAGE
  7. iOS弹窗UIAlertController的使用
  8. js面向对象写法及栈的实现
  9. VisualStudio\Spy++查窗口句柄,监控窗口消息
  10. 更换pycharm主题
  11. PLC跑马灯程序设计
  12. JavaWeb面试题1
  13. 详解js继承的那些事儿
  14. 一键发圈,一键转发到微信朋友圈或者微信好友
  15. python基金估值查询_利用python实现基金估值的邮件发送
  16. 录屏储存失败因为5823_屏幕录制储存失败因为-5823怎么找回
  17. python调用通达信数据_[python]沪深龙虎榜数据导入通达信的自选板块并标注于k线图上...
  18. 内核线程注入(x64)
  19. YApi内网部署、外网部署教程
  20. mini2440裸机音乐播放器(非常久曾经的笔记)

热门文章

  1. 滚珠螺杆怎样才能实现机床高速进给?
  2. 一个4分钟0台词的动画片却虐哭317万网友!
  3. js获取时间相关的处理方法
  4. “工欲善其事必先利其器“,捋一捋程序员们的十八般兵器
  5. oracle impdp表格,oracle impdp的table_exists_action详解
  6. 科技大佬走进直播间秀的是什么?苏宁真是6得不行!
  7. 浏览器copy as curl用法
  8. webgl-矩阵、旋转、平移、缩放 glMatrix组件
  9. java对sha1的解密_java对String进行sha1加密
  10. python加密解密 sha256_如何在python上使用RSA私钥和SHA256解密