2

我正在尝试计算使用包cforest中的函数构建的随机森林的变量重要性party。我想在条件设置为 的情况下运行 varimp TRUE,但是这样做时会收到一条错误消息。错误内容如下:

if (node[[5]][ 1 ] == variableID) cp <- node[[5]][[3]] 出错:参数长度为零

Varimp 使用默认设置conditional = FALSE运行就可以了。

关于数据集,所有变量都是分类的。响应变量是 Glottal(是/否),并且有七个预测变量。这是数据的链接,这是我正在使用的代码:

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 并且数据集中没有缺失值,问题仍然存在。非常感谢您的帮助!

4

1 回答 1

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

于 2018-02-07T02:54:54.030 回答