【发布时间】:2016-03-04 01:58:42
【问题描述】:
我正在尝试计算使用party 包中的cforest 函数构建的随机森林的变量重要性。我想在条件设置为TRUE 的情况下运行 varimp,但这样做时会收到一条错误消息。错误如下:
if (node[[5]][1] == variableID) cp
使用默认设置 conditional = FALSE 运行的 Varimp 运行良好。
关于数据集,所有变量都是分类的。响应变量是 Glottal(是/否),并且有七个预测变量。这是数据的link,这是我正在使用的代码:
library(party)
glottal.df <-read.csv("~glottal_data.csv", header=T)
glottal.df$Instance <- factor(glottal.df$Instance)
data.controls <- cforest_unbiased(ntree = 500, mtry = 2)
set.seed(45)
glottal.cf <- cforest(Glottal ~ Stress + Boundary + Context + Instance + Region + Target + Speaker, data = glottal.df, controls = data.controls)
# this gives me an error
glottal.cf.varimp.true <- varimp(glottal.cf, conditional = TRUE)
# this works
glottal.cf.varimp.false <- varimp(glottal.cf)
谁能告诉我为什么会出现这个错误?任何特定变量都不是问题,因为即使我删除变量、创建新森林并尝试重新计算 varimp 并且数据集中没有缺失值,问题仍然存在。非常感谢您的帮助!
【问题讨论】: