一文看懂随机森林 - Random Forest(附 4 个构造步骤+4 种实现方式评测+10 个优缺点)

本文首发自 产品经理的人工智能知识库算法

原文地址:《一文看懂随机森林 - Random Forest(附 4 个构造步骤+10 个优缺点)dom

一文看懂随机森林

随机森林是一种由决策树构成的集成算法,他在不少状况下都能有不错的表现。机器学习

本文将介绍随机森林的基本概念、4 个构造步骤、4 种方式的对比评测、10 个优缺点和 4 个应用方向。学习

什么是随机森林?

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

随机森林属于集成学习中的Bagging方法

决策树 - Decision Tree人工智能

图解决策树

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

随机森林 - Random Forest | RFcdn

图解随机森林

随机森林是由不少决策树构成的,不一样决策树之间没有关联。blog

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

构造随机森林的 4 个步骤

构造随机森林的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 种实现方法对比测试

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

随机森林的 4 个应用方向

随机森林的 4 个应用方向

随机森林能够在不少地方使用:

  1. 对离散值的分类
  2. 对连续值的回归
  3. 无监督学习聚类
  4. 异常点检测
相关文章
相关标签/搜索