代码之家  ›  专栏  ›  技术社区  ›  Bs He

条件重要性设置的varimp(r partykit)重新运行错误

  •  0
  • Bs He  · 技术社区  · 7 年前

    首先,我建立了一个模型

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

    这里考虑到数据集非常不平衡( y=1 占整个观察结果的7%),所以我补充说 strata 在这里确保观察 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)
    

    不过,我还是有错误:

    x[strata==s]<-.resample(x[strata==s])中的错误:
    在下标的分配中不允许使用NAS
    

    ---更新

    错误发生在 kidids_node 功能已应用。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Bs He    7 年前

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