数据:
我的训练集由 ~450k obs 和 26 个变量组成,其中 1 个是序数因子(order_month,12 个级别),其余的是数字。此外,我的一些预测变量是高度相关的(Pearson's > 0.5),这是意料之中的,有时是有意的。
我训练了一个很好的 RF 模型(ROC 0.96,在对看不见的数据进行测试时,特异性约为 90%,灵敏度约为 90%),并使用varImp().
问题:
现在,我知道具有阶乘和/或相关预测变量可能会导致 RF 模型中的变量选择有偏差,而条件推理树 (CIT) 应该是一种补救措施。
我试图比较 with 的结果,randomForest::varImp()但是party::varimp(myforest, conditional=TRUE)在后者中出现错误:
Error in model.matrix.default(as.formula(f), data = blocks) :
term 1 would require 9e+12 columns,
表明我有太多变量或变量太多级别。
最重要的是,它需要超过 24 小时才能运行party::cforest(),并且predict()在 CIT 模型上运行会使我的计算机完全崩溃。鉴于上述情况,我有几个
问题:
1) 我完全错误分类 RF 模型中顶级 VarImp 的可能性有多大。在这里运行 CIT 是绝对必要的吗?
2)如果不通过,获得条件变量重要性的替代方法是什么party::varimp()?
非常感谢您的建议!卡西亚