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

bmc*_*err 5 r random-forest

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

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

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

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

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

MrF*_*ick 8

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

test$val <- factor(test$val, levels=levels(train$val))
Run Code Online (Sandbox Code Playgroud)

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

(转贴此处以结束问题)