随机森林是一种由决策树构成的集成算法,他在很多情况下都能有不错的表现。本文将介绍随机森林的基本概念、4 个构造步骤、4 种方式的对比评测、10 个优缺点和 4 个应用方向。

什么是随机森林?

随机森林属于 集成学习 中的 Bagging(Bootstrap AGgregation 的简称) 方法。如果用图来表示他们之间的关系如下:

决策树 – Decision Tree

在解释随机森林前,需要先提一下决策树。决策树是一种很简单的算法,他的解释性强,也符合人类的直观思维。这是一种基于if-then-else规则的有监督学习算法,上面的图片可以直观的表达决策树的逻辑。

详细了解决策树,可以看看《一文看懂决策树 – Decision tree(3个步骤+3种典型算法+10个优缺点)》

随机森林 – Random Forest | RF

随机森林是由很多决策树构成的,不同决策树之间没有关联。

当我们进行分类任务时,新的输入样本进入,就让森林中的每一棵决策树分别进行判断和分类,每个决策树会得到一个自己的分类结果,决策树的分类结果中哪一个分类最多,那么随机森林就会把这个结果当做最终的结果。

构造随机森林的 4 个步骤

  1. 假如有N个样本,则有放回的随机选择N个样本(每次随机选择一个样本,然后返回继续选择)。这选择好了的N个样本用来训练一个决策树,作为决策树根节点处的样本。
  2. 当每个样本有M个属性时,在决策树的每个节点需要分裂时,随机从这M个属性中选取出m个属性,满足条件m << M。然后从这m个属性中采用某种策略(比如说信息增益)来选择1个属性作为该节点的分裂属性。
  3. 决策树形成过程中每个节点都要按照步骤2来分裂(很容易理解,如果下一次该节点选出来的那一个属性是刚刚其父节点分裂时用过的属性,则该节点已经达到了叶子节点,无须继续分裂了)。一直到不能够再分裂为止。注意整个决策树形成过程中没有进行剪枝。
  4. 按照步骤1~3建立大量的决策树,这样就构成了随机森林了。

随机森林的优缺点

优点

  1. 它可以出来很高维度(特征很多)的数据,并且不用降维,无需做特征选择
  2. 它可以判断特征的重要程度
  3. 可以判断出不同特征之间的相互影响
  4. 不容易过拟合
  5. 训练速度比较快,容易做成并行方法
  6. 实现起来比较简单
  7. 对于不平衡的数据集来说,它可以平衡误差。
  8. 如果有很大一部分的特征遗失,仍可以维持准确度。

缺点

  1. 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合。
  2. 对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的

随机森林 4 种实现方法对比测试

随机森林是常用的机器学习算法,既可以用于分类问题,也可用于回归问题。本文对 scikit-learn、Spark MLlib、DolphinDB、XGBoost 四个平台的随机森林算法实现进行对比测试。评价指标包括内存占用、运行速度和分类准确性。

测试结果如下:

测试过程及说明忽略,感兴趣的可以查看原文《随机森林算法 4 种实现方法对比测试:DolphinDB 速度最快,XGBoost 表现最差》

随机森林的 4 个应用方向

随机森林可以在很多地方使用:

  1. 对离散值的分类
  2. 对连续值的回归
  3. 无监督学习聚类
  4. 异常点检测

本文由 easyAI-产品经理的AI知识库 公众号:easyAI-产品经理的AI知识库 原创发布于产品壹佰平台,未经许可,禁止转载和商用。

决策树 随机森林 xgboost_一文看懂随机森林-RandomForest(附4个构造步骤+4种实现方式评测+10个优缺点)...相关推荐

  1. ​【Python基础】一文看懂 Pandas 中的透视表

    作者:来源于读者投稿 出品:Python数据之道 一文看懂 Pandas 中的透视表 透视表在一种功能很强大的图表,用户可以从中读取到很多的信息.利用excel可以生成简单的透视表.本文中讲解的是如何 ...

  2. python随机森林变量重要性_推荐 :一文读懂随机森林的解释和实现(附python代码)...

    原标题:推荐 :一文读懂随机森林的解释和实现(附python代码) 作者:WilliamKoehrsen:翻译:和中华:校对:李润嘉 本文约6000字,建议阅读15分钟. 本文从单棵决策树讲起,然后逐 ...

  3. 【目标检测】32、让你一文看懂且看全 NMS 及其变体

    文章目录 一.NMS 1.1 背景 1.2 方法 1.3 代码 1.4 不足 二.Soft NMS 2.1 背景 2.2 方法 2.3 效果 2.4 代码 2.5 不足 三.Softer NMS 3. ...

  4. 【深度学习理论】一文看懂卷积神经网络

    [深度学习理论]一文看懂卷积神经网络 https://mp.weixin.qq.com/s/wzpMtMFkVDDH6scVcAdhlA 选自Medium 作者: Pranjal Yadav 经机器之 ...

  5. 一文看懂推荐系统:概要01:推荐系统的基本概念

    一文看懂推荐系统:概要01:推荐系统的基本概念 提示:最近系统性地学习推荐系统的课程.我们以小红书的场景为例,讲工业界的推荐系统. 我只讲工业界实际有用的技术.说实话,工业界的技术远远领先学术界,在公 ...

  6. 一文看懂25个神经网络模型

    引言 在深度学习十分火热的今天,不时会涌现出各种新型的人工神经网络,想要实时了解这些新型神经网络的架构还真是不容易.光是知道各式各样的神经网络模型缩写(如:DCIGN.BiLSTM.DCGAN--还有 ...

  7. 一文看懂Python 爬虫 进阶(三)

    一文看懂Python 爬虫 进阶(三) 文章目录 一文看懂Python 爬虫 进阶(三) **猫眼电影(xpath)** **链家二手房案例(xpath)** **百度贴吧图片抓取** 这篇几乎都是代 ...

  8. 一文看懂推荐系统:召回07:双塔模型——正负样本的选择,召回的目的是区分感兴趣和不感兴趣的,精排是区分感兴趣和非常感兴趣的

    一文看懂推荐系统:召回07:双塔模型--正负样本的选择,召回的目的是区分感兴趣和不感兴趣的,精排是区分感兴趣和非常感兴趣的 提示:最近系统性地学习推荐系统的课程.我们以小红书的场景为例,讲工业界的推荐 ...

  9. 【一文看懂】深度神经网络加速和压缩新进展年度报告

    郑板桥在<赠君谋父子>一诗中曾写道, "删繁就简三秋树,领异标新二月花." 这句诗讲的是,在画作最易流于枝蔓的兰竹时,要去掉其繁杂使之趋于简明如"三秋之树&q ...

最新文章

  1. matlab固定床反应器,合成气完全甲烷化固定床反应器数值模拟
  2. C#——《C#语言程序设计》实验报告——泛型与集合——运算符重载
  3. 无法嵌入互操作类型“SHDocVw.ShellWindowsClass”。请改用适用的接口
  4. 爬虫教程( 4 ) --- 分布式爬虫 scrapy-redis、集群
  5. 【Java】浅谈Java的I/O体系
  6. 【做题】CF119D. String Transformation——KMP
  7. python解释器把python代码一次性翻译成目标代码_Python语言程序设计----【第1周 Python基本语法元素】之1.1 程序设计基本方法...
  8. 蓬荜生辉的意思是什么?蓬荜生辉用在什么场合?
  9. java parseexception_java date类parseException问题
  10. css颜色 333是什么颜色,纯css实现的颜色扇附图
  11. Linux-sys文件系统
  12. 计算机潮流算法一般采用,计算机潮流计算
  13. VBA系列(1)——VBA基础知识
  14. 油猴Tampermonkey及脚本使用
  15. Python CookBook第二章 字符串和文本
  16. deepin 安装最新snap商店
  17. Windows Azure为锤子科技Smartisan T1手机提供“工匠”级云服务
  18. 3D游戏模型教程系列:3D max安装
  19. 活动如何造势推广?会议软件帮您忙
  20. can和could的用法_情态动词can和could的用法及例句

热门文章

  1. 快速入门 Nacos 作为配置中心操作
  2. 玩转 Springboot 2 之热部署(DevTools)
  3. 手机通讯录备份代码实现一
  4. sql2008 服务器未响应,sql配置管理器,SQL server (MSSQLSERVER)开启不了,请求失败或服务器未响应....
  5. Jsp+Servlet+Mysql实现的酒店预定管理系统
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的病例管理系统
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的递代收系统
  8. 中国2008经济数据
  9. postman循环操作及响应判断-支持文本多变量输入
  10. 【JVM】Java虚拟机