随机森林中变量重要性的度量

机器算法验证 r 机器学习 随机森林 重要性
2022-01-25 12:30:33

我一直在使用随机森林进行回归,并且很难弄清楚这两个重要性度量的含义以及应该如何解释它们。

importance()函数为每个变量提供两个值:%IncMSEIncNodePurity这两个值有简单的解释吗?

特别是,这IncNodePurity仅仅是移除该变量后 RSS 增加的数量吗?

2个回答

第一个可以“解释”如下:如果一个预测变量在您当前的模型中很重要,那么随机但“现实地”为该预测变量分配其他值(即:在您的数据集上排列该预测变量的值)应该有负面影响关于预测,即:使用相同的模型从除了一个变量之外的相同数据进行预测,应该给出更差的预测。

因此,您对原始数据集和“置换”数据集进行预测测量 (MSE),然后以某种方式比较它们。一种方法,特别是因为我们期望原始 MSE 总是更小,所以可以采用差异。最后,为了使这些值在变量上具有可比性,这些值被缩放。

对于第二个:在每次拆分时,您可以计算此拆分减少了多少节点杂质(对于回归树,实际上是拆分前后 RSS 之间的差异)。这是对该变量的所有拆分、所有树的总和。

注意:一本好书是Hastie、Tibshirani 和 Friedman的Elements of Statistical Learning ...

在 R 中的 randomForest 包中实现的随机森林重要性度量有一个怪癖,即相关预测变量的重要性值较低。

http://bioinformatics.oxfordjournals.org/content/early/2010/04/12/bioinformatics.btq134.full.pdf

我在 CRAN 上有一个修改后的随机森林实现,它实现了他们估计经验 p 值和错误发现率的方法,在这里

http://cran.r-project.org/web/packages/pRF/index.html