当训练集具有比测试集更多不同的因子水平时,randomForest不起作用

时间:2014-07-21 18:49:52

标签: r random-forest

当尝试使用比我的训练数据更少的因子水平的新测试数据测试我训练的模型时,predict()返回以下内容:

  

新数据中预测变量的类型与训练数据的类型不匹配。

我的训练数据有一个包含7个因子水平的变量,我的测试数据具有6个因子水平的相同变量(训练数据中所有6个ARE)。

当我添加一个包含“缺失”第7个因子的观察时,模型会运行,所以我不确定为什么会发生这种情况,甚至不知道它背后的逻辑。

我可以看到测试集是否有更多/不同的因子水平,然后randomForest会窒息,但为什么在训练集有“更多”数据的情况下呢?

1 个答案:

答案 0 :(得分:8)

R期望训练和测试数据具有完全相同的水平(即使其中一组没有对给定水平或水平的观察)。在您的情况下,由于测试数据集缺少列车所具有的级别,您可以执行

test$val <- factor(test$val, levels=levels(train$val))

确保它具有所有相同的级别,并且它们的编码相同。

(转贴此处以解决问题)