随机森林如何评估特征重要性

2024-05-17 18:54

1. 随机森林如何评估特征重要性

 集成学习模型的一大特点是可以输出特征重要性,特征重要性能够在一定程度上辅助我们对特征进行筛选,从而使得模型的鲁棒性更好。
    随机森林中进行特征重要性的评估思想为:    判断每个特征在随机森林中的每颗树上做了多大的贡献,然后取个平均值,最后比一比特征之间的贡献大小。其中关于贡献的计算方式可以是基尼指数或袋外数据错误率。
   基尼指数计算方法:k 代表 k 个类别,  代表类别  k的样本权重。   
                                                                                                                                     
   对于一棵树   ,用OOB样本可以得到误差 e1,然后随机改变OOB中的第 j 列,保持其他列不变,对第 j 列进行随机的上下置换,得到误差 e2。至此,可以用 e1-e2 来刻画特征 j 的重要性。其依据就是,如果一个特征很重要,那么其变动后会非常影响测试误差,如果测试误差没有怎么改变,则说明特征j不重要。
   而该方法中涉及到的对数据进行打乱的方法通常有两种:   1)是使用uniform或者gaussian抽取随机值替换原特征;   2)是通过permutation的方式将原来的所有N个样本的第  i 个特征值重新打乱分布(相当于重新洗牌)。

随机森林如何评估特征重要性

2. 利用随机森林对特征重要性进行评估

 随机森林是以决策树为基学习器的集成学习算法。随机森林非常简单,易于实现,计算开销也很小,更令人惊奇的是它在分类和回归上表现出了十分惊人的性能,因此,随机森林也被誉为“代表集成学习技术水平的方法”。   本文是对随机森林如何用在特征选择上做一个简单的介绍。
   只要了解决策树的算法,那么随机森林是相当容易理解的。随机森林的算法可以用如下几个步骤概括:
                                           没错,就是这个到处都是随机取值的算法,在分类和回归上有着极佳的效果,是不是觉得强的没法解释~   然而本文的重点不是这个,而是接下来的特征重要性评估。
   sklearn 已经帮我们封装好了一切,我们只需要调用其中的函数即可。 我们以UCI上葡萄酒的例子为例,首先导入数据集。
   然后,我们来大致看下这是一个怎么样的数据集
   输出为
   可见共有3个类别。然后再来看下数据的信息:
   输出为:
   可见除去class label之外共有13个特征,数据集的大小为178。
   按照常规做法,将数据集分为训练集和测试集。此处注意: sklearn.cross_validation 模块在0.18版本中被弃用,支持所有重构的类和函数都被移动到了model_selection模块。从sklearn.model_selection引入train_test_split 
   好了,这样一来随机森林就训练好了,其中已经把特征的重要性评估也做好了,我们拿出来看下。
   输出的结果为
   对的就是这么方便。   如果要筛选出重要性比较高的变量的话,这么做就可以
   输出为
   这样,帮我们选好了3个重要性大于0.15的特征。

3. 随机森林进行特征重要性度量的详细说明

特征选择方法中,有一种方法是利用随机森林,进行特征的重要性度量,选择重要性较高的特征。下面对如何计算重要性进行说明。
  
 1 特征重要性​度量
  
 计算某个特征X的重要性时,具体步骤如下:
  
 1)对每一颗决策树,选择相应的袋外数据(out of bag,OOB)​计算袋外数据误差,记为errOOB1.
  
 所谓袋外数据是指,每次建立决策树时,通过重复抽样得到一个数据用于训练​决策树,这时还有大约1/3的数据没有被利用,没有参与决策树的建立。这部分数据可以用于对决策树的性能进行评估,计算模型的预测错误率,称为袋外数据误差。
  
 ​ 这已经经过证明是无偏估计的,所以在随机森林算法中不需要再进行交叉验证或者单独的测试集来获取测试集误差的无偏估计。 
  
 ​2)随机对袋外数据OOB所有样本的特征X加入噪声干扰(可以随机改变样本在特征X处的值),再次计算袋外数据误差,记为errOOB2。
  
 3)​假设森林中有N棵树,则特征X的重要性=∑(errOOB2-errOOB1)/N。这个数值之所以能够说明特征的重要性是因为,如果加入随机噪声后,袋外数据准确率大幅度下降(即errOOB2上升),说明这个特征对于样本的预测结果有很大影响,进而说明重要程度比较高。
  
 ​2 特征选择
  
 在特征重要性的基础上,特征选择的步骤如下:
  
 1)计算每个特征的重要性,并按降序排序
  
 2)确定要剔除的比例,依据特征重要性剔除相应比例的特征,得到一个新的特征集
  
 3)用新的特征集重复上述过程,直到剩下m个特征(m为提前设定的值)。
  
 4)根据上述过程中得到的各个特征集和特征集对应的袋外误差率,选择袋外误差率最低的特征集

随机森林进行特征重要性度量的详细说明

4. 随机森林进行特征重要性度量的详细说明

随机森林进行特征重要性度量的详细说明
特征选择方法中,有一种方法是利用随机森林,进行特征的重要性度量,选择重要性较高的特征。下面对如何计算重要性进行说明。
1 特征重要性度量
计算某个特征X的重要性时,具体步骤如下:
1)对每一颗决策树,选择相应的袋外数据(out of bag,OOB)计算袋外数据误差,记为errOOB1.
所谓袋外数据是指,每次建立决策树时,通过重复抽样得到一个数据用于训练决策树,这时还有大约1/3的数据没有被利用,没有参与决策树的建立。这部分数据可以用于对决策树的性能进行评估,计算模型的预测错误率,称为袋外数据误差。
这已经经过证明是无偏估计的,所以在随机森林算法中不需要再进行交叉验证或者单独的测试集来获取测试集误差的无偏估计。
2)随机对袋外数据OOB所有样本的特征X加入噪声干扰(可以随机改变样本在特征X处的值),再次计算袋外数据误差,记为errOOB2。
3)假设森林中有N棵树,则特征X的重要性=∑(errOOB2-errOOB1)/N。这个数值之所以能够说明特征的重要性是因为,如果加入随机噪声后,袋外数据准确率大幅度下降(即errOOB2上升),说明这个特征对于样本的预测结果有很大影响,进而说明重要程度比较高。
2 特征选择
在特征重要性的基础上,特征选择的步骤如下:
1)计算每个特征的重要性,并按降序排序
2)确定要剔除的比例,依据特征重要性剔除相应比例的特征,得到一个新的特征集
3)用新的特征集重复上述过程,直到剩下m个特征(m为提前设定的值)。
4)根据上述过程中得到的各个特征集和特征集对应的袋外误差率,选择袋外误差率最低的特征集。

5. 随机森林原理

  1、什么是随机森林?    随机森林就是用随机的方式建立一个森林,在森林里有很多决策树组成,并且每一棵决策树之间是没有关联的。当有一个新样本的时候,我们让森林的每一棵决策树分别进行判断,看看这个样本属于哪一类,然后用投票的方式,哪一类被选择的多,作为最终的分类结果。在回归问题中,随机森林输出所有决策树输出的平均值。
   (1)随机森林既可以用于分类,也可以用于回归。   (2)它是一种降维手段,用于处理缺失值和异常值。   (3)它是集成学习的重要方法。
    2、两个随机抽取    (1)样本有放回随机抽取固定数目   (2)构建决策树时,特征随机抽取   解释:两个随机性的引入对随机森林的分类性能至关重要。由于它们的引入,使得随机森林不容易陷入过拟合,并且具有很好得抗噪能力(比如:对缺省值不敏感)
    3、随机森林算法是如何工作的? 
   在随机森林中,每一个决策树“种植”和“生长”的四个步骤:
   (1)假设我们设定训练集中的样本个数为N,然后通过有重置的重复多次抽样获得这N个样本,这样的抽样结果将作为我们生成决策树的训练集;
   (2)如果有M个输入变量,每个节点都将随机选择m(m<M)个特定的变量,然后运用这m个变量来确定最佳的分裂点。在决策树的生成过程中,m的值是保持不变的;
   (3)每棵决策树都最大可能地进行生长而不进行剪枝;
   (4)通过对所有的决策树进行加总来预测新的数据(在分类时采用多数投票,在回归时采用平均)。
    4、随机森林的优缺点    优点:   (1)在分类和回归都表现良好   (2)对高维数据的处理能力强,可以处理成千上万的输入变量,是一个非常不错的降维方法   (3)能够输出特征的重要程度   (4)有效的处理缺省值
    5、重要参数    随机森林分类效果(错误率)与两个因素有关:   (1)森林中任意两棵树的相关性:相关性越大,错误率越大;   (2)森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低。     减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大。所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数。在学习如何选择参数前首先介绍oob的概念。
    6、oob:袋外错误率    为了选择最优的m,这里需要利用的是袋外错误率oob(out-of-bag error)。我们知道,在构建每个决策树的时候,采用的是随机又放回的抽取,所以对于每棵树来说,都有一些样本实力没有参与树的生成,所以这些样本成为袋外样本,即oob。所以我们需要做一下oob估计:   (1)对每个样本,计算它作为oob样本的树对它的分类情况   (2)多数投票作为该样本的分类结果   (3)用误分个数占样本总数的比率作为随机森林的oob误分率
   oob误分率是随机森林泛化误差的一个无偏估计,它的结果近似于需要大量计算的k折交叉验证。所以没有必要对它进行交叉验证或者用一个独立的测试集来获得误差的一个无偏估计。它可以在内部进行评估,也就是说在生成的过程中就可以对误差建立一个无偏估计。
   当我们知道了oob的计算方法,我们可以通过选取不同的m,计算oob error,找出oob error最小时对应的m的值。这和交叉验证的思想非常的相似。
    7、RF特征重要性的度量方法    (1)对于每一棵决策树,计算其oob error_0   (2)选取一个特征,随机对特征加入噪声干扰,再次计算oob error_1   (3)特征的重要性=∑(oob error_1-oob error_0)/随机森林中决策树的个数
   (4)对随机森林中的特征变量按照特征重要性降序排序。   (5)然后重复以上步骤,直到选出m个特征。
   解释:用这个公式来度量特征重要性,原因是:给某个特征随机的加入噪声后,如果oob error增大,说明这个特征对样本分类的结果影响比较大,说明重要程度比较高。
    8、RF特征选择    首先特征选择的目标有两个:   1:找到与分类结果高度相关的特征变量。   2:选择出数目较少的特征变量并且能够充分的预测应变量的结果。
   特征选择的步骤:   (1)对于每一棵决策树,计算其oob error   (2)随机的修改OOB中的每个特征xi的值,计算oob error_2,再次计算重要性   (3)按照特征的重要性排序,然后剔除后面不重要的特征   (4)然后重复以上步骤,直到选出m个特征。
    9、几个问题    (1)为什么要随机抽取样本?   答:如果不进行随机抽样,对于每个树的训练集都是相同的,训练出来的结果也是一样的,所以此时进行投票决策没有意义。
   (2)为什么要有放回的去抽样呢?   答:如果不是有放回的抽样,那么每一棵树的训练样本是不同的,都是没有交集的,那么每棵树都是有偏的,都是片面的,树与树之间并不是完全公平的。我们需要的是,没颗决策树是公平的,然后让它们投票决策得出结果,并且这样可以防止过度拟合。
   (3)这里指的有放回的抽样,是每次抽一个放回,还是一次抽n个再放回?
                                           注意:   构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。
   参考资源:    http://www.cnblogs.com/emanlee/p/4851555.html     http://www.cnblogs.com/maybe2030/p/4585705.html     http://scientistcafe.com/2016/11/18/Tree4.html     http://www.cnblogs.com/justcxtoworld/p/3447231.html     https://zhuanlan.zhihu.com/p/21358126 

随机森林原理

6. 森林的特性

(1)生命周期及演替系列长。森林的主体成分——树木的寿命可达数十年,数百年甚至上千年。如北美的巨杉,中国的银杏、红桧。森林演替系列也是植物群落中最长的。从原生演替的先锋树种(灌木)开始到成熟稳定的顶级阶段,通常要经过百年以上。如果加上先锋树种阶段的先期部分,则阶段更多,过程更长。(2)再生性。森林本身具有生产力,是可以更新的资源,如能合理利用,可实现森林资源的永续利用。(3)分布范围广。由落叶或常绿以及具有耐寒、耐旱、耐盐碱或耐水湿等不同特性的树种形成的各种类型森林,分布在寒带、温带、亚热带、热带的山区、丘陵、平地,甚至沼泽、海涂滩地等地方。(4)再生能力强。森林是可再生资源,可进行人工更新或天然更新;有很强的竞争力,能自行恢复在植被中的优势地位。但也有限,一经采伐,其生产力的提高或衰减取决于经营的集约程度。(5)生产率高。森林由于具有高大而多层的枝叶分布,其光能利用率达1.6%~3.5%,森林每年所固定的总能量占陆地生物每年固定的总能量的63%,森林的生物产量在所有植物群落中最多,是最大的自然物能储存库。(6)用途多,效益大。森林能持续提供多种林产品,如木材、食物、化工和医药原料等。同时,森林在涵养水源,改善水质,保持水土,减轻自然灾害,调节温度与湿度,净化空气,减弱噪声,美化环境以及保护野生动植物方面的生态效益、社会效益也很大。

7. 随机森林

摘录自别人
  
 随机森林中有一个错误发现率还有一个是树木,,更多的是体现这个工具帮你解决的问题
  
 使用这个工具干了什么,而不是别的
  
 随机森林原理
  
  1、什么是随机森林? 
  
 随机森林就是用随机的方式建立一个森林,在森林里有很多决策树组成,并且每一棵决策树之间是没有关联的。当有一个新样本的时候,我们让森林的每一棵决策树分别进行判断,看看这个样本属于哪一类,然后用投票的方式,哪一类被选择的多,作为最终的分类结果。在回归问题中,随机森林输出所有决策树输出的平均值。
  
 (1)随机森林既可以用于分类,也可以用于回归。
  
 (2)它是一种降维手段,用于处理缺失值和异常值。
  
 (3)它是集成学习的重要方法。
  
  2、两个随机抽取 
  
 (1)样本有放回随机抽取固定数目
  
 (2)构建决策树时,特征随机抽取
  
 解释:两个随机性的引入对随机森林的分类性能至关重要。由于它们的引入,使得随机森林不容易陷入过拟合,并且具有很好得抗噪能力(比如:对缺省值不敏感)
  
  3、随机森林算法是如何工作的? 
  
 在随机森林中,每一个决策树“种植”和“生长”的四个步骤:
  
 (1)假设我们设定训练集中的样本个数为N,然后通过有重置的重复多次抽样获得这N个样本,这样的抽样结果将作为我们生成决策树的训练集;
  
 (2)如果有M个输入变量,每个节点都将随机选择m(m<M)个特定的变量,然后运用这m个变量来确定最佳的分裂点。在决策树的生成过程中,m的值是保持不变的;
  
 (3)每棵决策树都最大可能地进行生长而不进行剪枝;
  
 (4)通过对所有的决策树进行加总来预测新的数据(在分类时采用多数投票,在回归时采用平均)。
  
  4、随机森林的优缺点 
  
 优点:
  
 (1)在分类和回归都表现良好
  
 (2)对高维数据的处理能力强,可以处理成千上万的输入变量,是一个非常不错的降维方法
  
 (3)能够输出特征的重要程度
  
 (4)有效的处理缺省值
  
  5、重要参数 
  
 随机森林分类效果(错误率)与两个因素有关:
  
 (1)森林中任意两棵树的相关性:相关性越大,错误率越大;
  
 (2)森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低。
  
 减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大。所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数。在学习如何选择参数前首先介绍oob的概念。
  
  6、oob:袋外错误率 
  
 为了选择最优的m,这里需要利用的是袋外错误率oob(out-of-bag error)。我们知道,在构建每个决策树的时候,采用的是随机又放回的抽取,所以对于每棵树来说,都有一些样本实力没有参与树的生成,所以这些样本成为袋外样本,即oob。所以我们需要做一下oob估计:
  
 (1)对每个样本,计算它作为oob样本的树对它的分类情况
  
 (2)多数投票作为该样本的分类结果
  
 (3)用误分个数占样本总数的比率作为随机森林的oob误分率
  
 oob误分率是随机森林泛化误差的一个无偏估计,它的结果近似于需要大量计算的k折交叉验证。所以没有必要对它进行交叉验证或者用一个独立的测试集来获得误差的一个无偏估计。它可以在内部进行评估,也就是说在生成的过程中就可以对误差建立一个无偏估计。
  
 当我们知道了oob的计算方法,我们可以通过选取不同的m,计算oob error,找出oob error最小时对应的m的值。这和交叉验证的思想非常的相似。
  
  7、RF特征重要性的度量方法 
  
 (1)对于每一棵决策树,计算其oob error_0
  
 (2)选取一个特征,随机对特征加入噪声干扰,再次计算oob error_1
  
 (3)特征的重要性=∑(oob error_1-oob error_0)/随机森林中决策树的个数
  
 (4)对随机森林中的特征变量按照特征重要性降序排序。
  
 (5)然后重复以上步骤,直到选出m个特征。
  
 解释:用这个公式来度量特征重要性,原因是:给某个特征随机的加入噪声后,如果oob error增大,说明这个特征对样本分类的结果影响比较大,说明重要程度比较高。
  
  8、RF特征选择 
  
 首先特征选择的目标有两个:
  
 1:找到与分类结果高度相关的特征变量。
  
 2:选择出数目较少的特征变量并且能够充分的预测应变量的结果。
  
 特征选择的步骤:
  
 (1)对于每一棵决策树,计算其oob error
  
 (2)随机的修改OOB中的每个特征xi的值,计算oob error_2,再次计算重要性
  
 (3)按照特征的重要性排序,然后剔除后面不重要的特征
  
 (4)然后重复以上步骤,直到选出m个特征。
  
  9、几个问题 
  
 (1)为什么要随机抽取样本?
  
 答:如果不进行随机抽样,对于每个树的训练集都是相同的,训练出来的结果也是一样的,所以此时进行投票决策没有意义。
  
 (2)为什么要有放回的去抽样呢?
  
 答:如果不是有放回的抽样,那么每一棵树的训练样本是不同的,都是没有交集的,那么每棵树都是有偏的,都是片面的,树与树之间并不是完全公平的。我们需要的是,没颗决策树是公平的,然后让它们投票决策得出结果,并且这样可以防止过度拟合。
  
 (3)这里指的有放回的抽样,是每次抽一个放回,还是一次抽n个再放回?
                                          
 注意:
  
 构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。

随机森林

8. 随机森林

先上重点 
  
 GBDT和随机森林虽然都是决策树的组合算法,但是两者的训练过程还是很不相同的。 
  
    GBDT训练 是每次一棵,一棵接着一棵(串行),因此与随机森林并行计算多棵树相比起来, 会需要更长的训练时间 。 
  
    在GBDT中 ,相对于随机森林而言(随机森林中的树可以不做很多的剪枝), 一般会选择更浅(depth更小)的树, 这样运算时间会减少。 
  
    随机森林更不容易过拟合 ,而且森林中包含越多的树似乎越不会出现过拟合。用统计学的语言来讲,就是说越多的树包含进来,会降低预测结果的方差(多次预测结果会更加稳定)。但是GBDT则恰好相反,包含预测的树(即迭代的次数越多),反而会更倾向于过拟合,用统计学的语言来将,就是GBDT迭代次数的增加减少的是偏差(预测结果和训练数据label之间的差异)。(偏差和方差这两个概念是不同的概念,见后面的图) 
  
    随机森林参数相对更容易调试一些 ,这是由于随着所包含的决策树的个数增加,其预测效果一般是单调的向好的方向变。 而GBDT则不同,一开始预测表现会随着树的数目增大而变好,但是到一定程度之后,反而会随着树的数目增加而变差。  
  
  
   
  
  随机森林算法 
  
 随机森林是一种有监督学习算法。 就像你所看到的它的名字一样,它创建了一个森林,并使它拥有某种方式随机性。 所构建的“森林”是决策树的集成,大部分时候都是用“bagging”方法训练的。 bagging方法,即bootstrap aggregating,采用的是随机有放回的选择训练数据然后构造分类器,最后组合学习到的模型来增加整体的效果。
  
 简而言之:随机森林建立了多个决策树,并将它们合并在一起以获得更准确和稳定的预测。随机森林的一大优势在于它既可用于分类,也可用于回归问题,这两类问题恰好构成了当前的大多数机器学习系统所需要面对的。
  
 除了少数例外,随机森林分类器使用所有的决策树分类器以及bagging 分类器的超参数来控制整体结构。 与其先构建bagging分类器,并将其传递给决策树分类器,您可以直接使用随机森林分类器类,这样对于决策树而言,更加方便和优化。要注意的是,回归问题同样有一个随机森林回归器与之相对应。
  
 随机森林算法中树的增长会给模型带来额外的随机性。与决策树不同的是,每个节点被分割成最小化误差的最佳特征,在随机森林中我们选择随机选择的特征来构建最佳分割。因此,当您在随机森林中,仅考虑用于分割节点的随机子集,甚至可以通过在每个特征上使用随机阈值来使树更加随机,而不是如正常的决策树一样搜索最佳阈值。这个过程产生了广泛的多样性,通常可以得到更好的模型。
  
  机器学习算法之随机森林算法的特征的重要性 
  
 随机森林算法的另一个优点是可以很容易地测量每个特征对预测的相对重要性。 Sklearn为此提供了一个很好的工具,它通过查看使用该特征减少了森林中所有树多少的不纯度,来衡量特征的重要性。它在训练后自动计算每个特征的得分,并对结果进行标准化,以使所有特征的重要性总和等于1。
  
  决策树与随机森林的区别 
  
 随机森林是决策树的集合,但仍有一些区别。
                                          
 如果您将带有特征和标签的训练数据集输入到决策树中,它将制定一些规则集,用于预测。
  
 例如,如果您想预测某人是否会点击在线广告,可以收集该广告的过去点击人员以及能够描述其做决定的特征。一旦你将这些特征和标签放入决策树中,它会生成节点和一些规则,然后你就可以预测广告是否会被点击。但决策树通常通过计算信息增益和基尼指数来生成节点和规则时,相比之下,随机森林则是随机的。
  
 另一个区别是“深度”决策树往往会遭遇过拟合问题。而随机森林则可以通过创建随机的特征子集并使用这些子集构建较小的树,随后组成子树,这种方法可以防止大部分情况的过拟合。要注意的是,这同时会使得计算速度变慢,并取决于随机森林构建的树数。
  
  机器学习算法之随机森林算法重要的超参数 
  
 随机森林中的参数要么用来增强模型的预测能力,要么使模型更快。 以下将讨论sklearns内置的随机森林函数中的超参数。
  
  提高模型预测准确性 
  
 首先,“n_estimators”超参数表示算法在进行最大投票或采取预测平均值之前建立的树数。 一般来说,树的数量越多,性能越好,预测也越稳定,但这也会减慢计算速度。
  
 另一个重要的超参数是“max_features”,它表示随机森林在单个树中可拥有的特征最大数量。 Sklearn提供了几个选项,在他们的文档中有描述:
  
 http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html
  
 最后一个重要的超参数是“min_sample_leaf”,正如其名称所述,这决定了叶子的数量。
  
  加快模型计算速度 
  
 “n_jobs”超参数表示引擎允许使用处理器的数量。 若值为1,则只能使用一个处理器。 值为-1则表示没有限制。
  
 “random_state”,表示随机数种子,保证模型的输出具有可复制性。 当它被赋于一个指定值,且模型训练具有相同的参数和相同的训练数据时,该模型将始终产生相同的结果。
  
 最后,还有一个“oob_score”(也称为oob采样), 它是一种随机森林交叉验证方法。  在这个抽样中,大约三分之一的数据不用于模型训练,而用来评估模型的性能。这些样本被称为袋外样本。它与留一法交叉验证方法非常相似,但几乎没有附加的计算负担。
  
  优缺点分析 
  
 就像我之前提到的那样,随机森林的一个优点是它可以用于回归和分类任务,并且很容易查看模型的输入特征的相对重要性 。
   
  
 随机森林同时也被认为是一种非常方便且易于使用的算法,因为它是默认的超参数通常会产生一个很好的预测结果。超参数的数量也不是那么多,而且它们所代表的含义直观易懂。
  
 机器学习中的一个重大问题是过拟合,但大多数情况下这对于随机森林分类器而言不会那么容易出现。因为只要森林中有足够多的树,分类器就不会过度拟合模型。
  
 随机森林的主要限制在于使用大量的树会使算法变得很慢,并且无法做到实时预测。一般而言,这些算法训练速度很快,预测十分缓慢。越准确的预测需要越多的树,这将导致模型越慢。在大多数现实世界的应用中,随机森林算法已经足够快,但肯定会遇到实时性要求很高的情况,那就只能首选其他方法。
  
 当然,随机森林是一种预测性建模工具,而不是一种描述性工具。也就是说,如果您正在寻找关于数据中关系的描述,那建议首选其他方法。
  
  适用范围 
  
 随机森林算法可被用于很多不同的领域,如银行,股票市场,医药和电子商务。 在银行领域,它通常被用来检测那些比普通人更高频率使用银行服务的客户,并及时偿还他们的债务。 同时,它也会被用来检测那些想诈骗银行的客户。 在金融领域,它可用于预测未来股票的趋势。 在医疗保健领域,它可用于识别药品成分的正确组合,分析患者的病史以识别疾病。 除此之外,在电子商务领域中,随机森林可以被用来确定客户是否真的喜欢某个产品。