【问题标题】:varimp (R partykit) retuns errors for conditional importance settingvarimp (R partykit) 为条件重要性设置重新调整错误
【发布时间】:2018-05-23 21:29:22
【问题描述】:

首先,我构建了一个模型

cf1 <- cforest(y~., data = DATA, strata = DATA$y,
           ntree = 200L, mtry = 10)

这里考虑到数据集非常不平衡(y=1 占整个观测值的 7%),所以我在此处添加 strata 以确保在 bagging 中不会忽略 y=1 的观测值。 cf1 工作正常,就混淆矩阵而言。但是,当我尝试通过

实现特征选择时
cf1.imp_cond <- varimp(cf1, conditional = TRUE)

返回

Error in x[strata == s] <- .resample(x[strata == s]) : 
NAs are not allowed in subscripted assignments

我不知道这个错误是什么意思。有人遇到过这个吗?

----更新

这是来自我正在使用的原始数据集的操纵 test data。这是代码

cf2 <- cforest(X5_years_survival~., data = test, strata = X5_years_survival,
           ntree = 200L, mtry = 6)
cf2.imp_cond <- varimp(cf2, conditional = TRUE)

我还是有错误:

Error in x[strata == s] <- .resample(x[strata == s]) : 
NAs are not allowed in subscripted assignments

---更新

应用kidids_node函数时出现错误。

【问题讨论】:

  • 你能发布一个最小的可重现示例吗?否则很难调试。
  • @AchimZeileis 我正在尝试这样做。顺便问一下,你认为我设置strata的方式是应该的方式吗?
  • @AchimZeileis 添加示例。
  • 谢谢。但是,在执行test &lt;- read.csv("test.csv") 之后,这对我来说成功运行。 X5_years_survival 是否变成factor(如cforest 要求)似乎并不重要。在处理改进的示例时:尝试安装最新版本的软件包并进一步简化示例(例如,一个协变量和一个层)以可靠且快速地产生错误。
  • @AchimZeileis 你的意思是你没有遇到同样的错误吗?我安装了partykit的1.2.1版本。

标签: r machine-learning random-forest feature-selection party


【解决方案1】:

事实是,如果我保留所有 integer 类型的协变量,而不是通过 as.factor 转换它们,应用 varimp 不会出错。

【讨论】:

    猜你喜欢
    • 2016-03-04
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    • 2018-02-02
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多