当我尝试在新的测试数据上测试我的训练模型,测试数据的因子水平少于训练数据时,
当我添加一个包含“缺失”的第7个因子水平的观察结果时,模型可以运行。因此,我不确定为什么会出现这种情况,或者其背后的逻辑是什么。
如果测试集具有更多/不同的因子水平,那么随机森林可能会失败,但为什么在训练集更“多”数据的情况下也会失败呢?
predict()
返回以下信息:
我的训练数据具有一个包含7个因子水平的变量,而我的测试数据具有相同的变量,但只有6个因子水平(这6个因子水平都在训练数据中)。新数据中的预测变量类型与训练数据不匹配。
当我添加一个包含“缺失”的第7个因子水平的观察结果时,模型可以运行。因此,我不确定为什么会出现这种情况,或者其背后的逻辑是什么。
如果测试集具有更多/不同的因子水平,那么随机森林可能会失败,但为什么在训练集更“多”数据的情况下也会失败呢?
levels()
即可。 - MrFlicktest$val <- factor(test$val, levels=levels(train$val))
或类似的操作。由于您没有提供一个可重现的示例,所以很难具体说明。 - MrFlick