我正在尝试计算使用cforest
包中的party
函数构建的随机林的变量重要性。我想将条件设置为TRUE
运行varimp,但是当我这样做时,我收到一条错误消息。错误如下:
if(node [[5]] [1] == variableID)cp< - node [[5]] [[3]]出错: 参数长度为零
使用默认设置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,问题仍然存在,并且数据集中没有缺失值。非常感谢您的帮助!
答案 0 :(得分:0)
似乎与第1.2.4方合作:
> glottal.cf.varimp.true
Stress Boundary Context
0.0003412322 0.2405971564 0.0122369668
Instance Region Target
-0.0043507109 0.0044360190 -0.0011469194
Speaker
0.0384834123
> packageVersion('party')
[1] ‘1.2.4’
> R.version
_
platform x86_64-pc-linux-gnu
arch x86_64
os linux-gnu
system x86_64, linux-gnu
status
major 3
minor 4.3
year 2017
month 11
day 30
svn rev 73796
language R
version.string R version 3.4.3 (2017-11-30)
nickname Kite-Eating Tree