本文参考来源于:
杨凯, 侯艳, 李康. 随机森林变量重要性评分及其研究进展[J]. 2015.

码字不易,各位看官大大的赞是我更细的动力!

一、引言

随机森林(随机森林指标参数重要性评估 随机森林 变量重要性_机器学习)由随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_02等人在2001年提出。

随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03具有很高的预测准确率,对异常值和噪声有很强的容忍度,能够处理高维数据(变量个数远大于观测个数),有效地分析非线性、具有共线性和交互作用的数据, 并能够在分析数据的同时给出变量重要性评分(随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_04)。这些特点使得随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03特别适用于高维组学数据的研究,即在对疾病进行分类的同时通过随机森林指标参数重要性评估 随机森林 变量重要性_决策树_06值筛选出潜在的生物标志物,研究疾病发生、发展的生物学机制。然而, 由于在实际中由RF筛选变量使用的统计量不同,可能会使结果有较大的差异,为此本文在简单介绍随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03筛选变量的基础上,拟针对目前随机森林变量重要性评分的不同计算方法和新近提出的改进方法, 说明其在高维组学数据分析中的应用。

二、随机森林的基本原理

了解决策树的算法,那么随机森林是相当容易理解的。随机森林的算法可以用如下几个步骤概括:

1.用有抽样放回的方法(bootstrap)从样本集中选取随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_08个样本作为一个训练集;

2.用抽样得到的样本集生成一棵决策树。在生成的每一个结点:

(1)随机不重复地选择随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_09个特征

(2)利用这随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_09个特征分别对样本集进行划分,找到最佳的划分特征(可用基尼系数、增益率或者信息增益判别)

3.重复步骤1到步骤2共随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_11次,随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_11即为随机森林中决策树的个数。

4.用训练得到的随机森林对测试样本进行预测,并用投票法决定预测的结果。

下图比较直观地展示了随机森林算法:

随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_13

图片来源:
杨凯, 侯艳, 李康. 随机森林变量重要性评分及其研究进展[J]. 2015.

随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03中的每一棵分类树为二叉树,根节点包含全部训练自助样本,按照一定的原则,在每个节点从一组随机选取的变量中选择使分枝后节点“不纯度” 最小的变量作为分枝变量,分裂为左节点和右节点, 它们分别包含训练数据的一个子集, 分裂后的节点按照同样规则继续分裂, 直到满足分枝停止规则而停止生长, 具体过程见图 1。

“不纯度” 的衡量标准包括随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_15不纯度、 熵和错误率等。 变量筛选使用随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_16统计量。

三、随机森林常规的变量重要性评分

现假定有变量随机森林指标参数重要性评估 随机森林 变量重要性_决策树_17,需要计算出随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_18随机森林指标参数重要性评估 随机森林 变量重要性_决策树_06得分统计量。

随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03常规的随机森林指标参数重要性评估 随机森林 变量重要性_决策树_06计算方法分为两种,即根据随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_22指数和袋外数据(随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23) 错误率计算得到, 变量随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_24的得分统计量分别用随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_25随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26表示。

2.1 Gini指数

统计量随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_25表示第随机森林指标参数重要性评估 随机森林 变量重要性_决策树_28个变量在随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03所有树中节点分裂不纯度的平均改变量。随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_22指数的计算公式为:

随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_31

随机森林指标参数重要性评估 随机森林 变量重要性_决策树_32为自助样本集的类别数,随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_33为节点随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_34样本属于第随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_11类的概率估计值,当样本为二分类数据时(随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_36) ,节点随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_34随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_22指数为:

随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_39

随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_40为样本在节点随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_34属于任意一类的概率估计值。

变量随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_24在节点随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_34的重要性,即节点随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_34分枝前后随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_22指数变化量为:

随机森林指标参数重要性评估 随机森林 变量重要性_决策树_46

随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_47随机森林指标参数重要性评估 随机森林 变量重要性_决策树_48分别表示由节点随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_34分裂的两新节点的随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_22指数。

如果变量随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_24在第随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_52棵树中出现随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_18次,则变量随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_24在第随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_52棵树的重要性为:

随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_56

变量随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_24随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03中的随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_22重要性定义为:

随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_60

其中,随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_08随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03中分类树的数量。

2.2 OOB 错误率

随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26的定义为:在随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03的每棵树中,使用随机抽取的训练自助样本建树,并计算袋外数据(随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23)的预测错误率,然后随机置换变量随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_24的观测值后再次建树并计算随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23的预测错误率,最后计算两次随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23错误率的差值经过标准化处理后在所有树中的平均值即为变量随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_24的置换重要性(随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26)。

变量随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_24在第随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_52棵树的随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26为:

随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_74

其中,随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_75为第随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_52棵树随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23数据的观测例数,随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_78为指示函数,即两值相等时取1,不等时取0;随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_79为第随机森林指标参数重要性评估 随机森林 变量重要性_决策树_80个观测的真实结果,随机森林指标参数重要性评估 随机森林 变量重要性_决策树_81为随机置换前第随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_52棵树对随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23数据第随机森林指标参数重要性评估 随机森林 变量重要性_决策树_80个观测的预测结果,随机森林指标参数重要性评估 随机森林 变量重要性_决策树_85为随机置换后第随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_52棵树对随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23数据第随机森林指标参数重要性评估 随机森林 变量重要性_决策树_80个观测的预测结果。

当变量随机森林指标参数重要性评估 随机森林 变量重要性_决策树_28没有在第随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_52棵树中出现时,随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_91

变量随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_24随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03中的置换重要性定义为:

随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_94

其中,随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_08随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03中分类树的数量。

2.3 常规变量重要性评分的优缺点

随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_25在数据挖掘中估计变量重要性时有着广泛的应用。 当变量为连续型变量且互不相关时,随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_25的估计是无偏的;

当信噪比较低时,随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_25的准确性也高于随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26,因此,随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_25有更高的稳定性。

然而, 当同时存在连续变量和分类变量或者分类变量的水平数不同时,随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_25估计则不够准确。由于随机森林指标参数重要性评估 随机森林 变量重要性_决策树_32个水平的分类变量在节点处可以有随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_104种分割, 连续变量在节点处可以有随机森林指标参数重要性评估 随机森林 变量重要性_决策树_105种分割(随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_106为样本量)。在备选分割较多时, 即使变量没有分类作用, 也可能使随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_22指数降低, 从而更容易被选为分枝变量, 即随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_25被高估。 实际上, 由于随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_22指数的计算问题, 水平数多的分类变量的随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_22指数降低会大于水平数少的分类变量。

当分类变量水平数相同时, 如果不同变量的水平间差别不同, 容易过高估计水平间差别大的变量的随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_25 。 在 SNP 数据分析中, Nicodemus 等人指出当所有 SNP 都不具有分类能力时,不相关 SNP 的随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_25高于高度相关 SNP 的随机森林指标参数重要性评估 随机森林 变量重要性_机器学习_25

事实上,随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26在实际中的应用范围更加广泛。 由于随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26是通过随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23数据计算的, 因此可以看作变量具有的分类能力, 没有分类能力的变量在观测值置换前后的随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23错误率不会发生改变, 即数学期望随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_118,此外,随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26不仅能够衡量变量单独的分类能力, 还能够衡量变量间交互作用的分类能力。

当同时存在连续变量和分类变量或者分类变量水平数不同时, 并不会影响随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26准确性。随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26是通过随机置换变量观测值前后随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23错误率的差值计算的, 即使没有分类作用, 水平数多的变量也更容易被选为分枝变量, 但置换前后并不会影响随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23错误率,同时会使随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26的变异增大。

在分类数据不平衡时,随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26的准确性会受到一定影响。例如多数为正常人, 无论变量是否置换, 大部分的数据都会被预测为正常, 虽然随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23错误率受到的影响可能不大,但却会严重低估所有变量的随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26

当单棵树的预测准确率较低时(如随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23错误率达到 50%) , 会低估变量的随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26

当置换前随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_23错误率已经很大时, 置换变量观测值使得 OOB 错误率变大的可能性降低, 从而低估变量的随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26

当没有分类能力的变量与有分类能力的变量相关时, 可能低估相关有分类能力变量的随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26,且估计方差变异增加, 而此时没有分类能力变量的随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26则被高估。

组学数据中存在大量的噪声变量, 当变量数目巨大而具有分类能力的变量所占比例很小时,随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03建模容易受到大量噪声变量的干扰, 使变量的随机森林指标参数重要性评估 随机森林 变量重要性_决策树_06计算受到影响, 变量筛选的结果不可信。

2.4 变量重要性( VIM ) 的显著性检验

随机森林指标参数重要性评估 随机森林 变量重要性_决策树_06给出了变量的重要性排序, 但无法在变量筛选时给出显著性假设检验的阈值。 事实上, 当所有变量都没有分类能力时,随机森林指标参数重要性评估 随机森林 变量重要性_决策树_06也会给出变量重要性排序, 筛选出不具有分类能力的变量; 而当有分类能力的变量很多时, 仅通过变量的排序进行变量筛选, 可能漏掉一些具有分类能力的变量。

随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_02等人提出通过随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_139值直接计算随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26的显著性, 即:

随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_141

其中,随机森林指标参数重要性评估 随机森林 变量重要性_特征重要性_142随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03中各棵树随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_26的标准差,随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_08为随机森林(随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_03)中树的数量。 然而,随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_147等人通过模拟实验表明:随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_139值的检验效能与样本量随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_106及树的数量随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_08有很大的关系, 当样本量随机森林指标参数重要性评估 随机森林 变量重要性_随机森林指标参数重要性评估_106很大而树的数量随机森林指标参数重要性评估 随机森林 变量重要性_随机森林_08小时, 检验效能接近于0。