我正在尝试使用partykit::varimp
从随机森林中为具有一些相关预测变量的数据集计算条件变量的重要性。我之所以要使用varimp
而非partykit
中的party
的实现,是因为它具有并行化选项-我的数据集相当大,nxp = 70,000 x 59和{{ 1}}非常慢,尤其是对于varimp
。
为什么以下内容返回空的conditional=TRUE
而不是变量重要性数据?
named numeric(0)
编辑:
似乎存在一个错误,具体取决于您使用的数据量。不知道是什么原因导致的,或者不确定是否可以解决?在源代码中进行了查看,但无法理解。
library(partykit)
library(parallel)
num_cores <- detectCores()-1
# Create dummy data with some correlations
m1 <- data.frame(matrix(rnorm(600), ncol=60))
m1$X10 <- m1$X1 + rnorm(10, 5, 3)
m1$X20 <- m1$X1 + rnorm(10, 5, 3)
m1$X30 <- m1$X1 + rnorm(10, 5, 3)
# Fit forest
forest <- cforest(X1~.,
data=m1,
cores=num_cores,
ntree=500,
mtry=8)
# Get variable importance
var_importance <- varimp(forest,
conditional=TRUE,
cores=num_cores)