随机森林变量重要性度量是否考虑了相互作用?

机器算法验证 随机森林 重要性
2022-03-25 04:21:06

变量重要性的随机森林测量(准确性的平均变化,基尼指数的平均变化)是否考虑了相互作用?我想我知道我们如何得出可变重要性图(通过排列每个预测变量),而且随机森林似乎没有捕捉到相互作用。有人有其他观点吗?谢谢。

2个回答

运行此代码并断言 RF 变量重要性确实包含交互。

library(randomForest)
obs=1000
vars =4
X = data.frame(replicate(vars,rnorm(obs)))
ysignal = with(X,sign(X1*X2))
ynoise  = 0.1 * rnorm(obs)
y = ysignal + ynoise
RF = randomForest(X,y,importance=T)
varImpPlot(RF)

您应该看到 X1 和 X2 被发现是重要的,而 X3 和 X4 不是。y 仅被解释为 X1 和 X2 之间的相互作用,单独两个变量都是无用的。

在此处输入图像描述

通过置换获得的变量重要性仅通过置换单个变量的值来计算。因此,它在所有其他数据都固定的情况下计算给定变量的一些重要性度量。我认为有理由说明重要性度量在度量中还包括交互作用,如果存在这种交互作用的话。我的意思是,我将 VI 视为一种不纯的度量,一种受该变量的主要影响以及与其他变量相互作用影响的度量。

发现基尼重要性经常与排列重要性一致,我认为这是一个类似的衡量标准。

然而,在随机森林中测量了一种称为交互的东西,它测量给定变量上的分裂是否增加或减少其他度量上的分裂。这可以针对每对度量进行计算。它看起来像一个 2 度量交互。如果一个人想要测量与超过 2 个变量的交互,我认为可以扩展给定的过程,但很快就会变得过于计算机密集。

据我所知,R 包randomForests中没有实现最后一个叫做交互的东西。在此处查看Breiman 的 RF 页面的简要说明,并查看交互部分。