我正在使用随机森林包调试代码,几乎没有以前的R经验。
我已经达到了predict.randomForest
,我得到了错误:
培训数据中没有新的因子水平。
搜索此网站我发现原因,并了解我需要删除导致问题的记录。
如何隔离(找出)导致问题的列/行?
答案 0 :(得分:4)
假设你有train.data,你用来构建模型,test.data,你现在想要得到预测,你的因子变量factor.var1,那么你可以这样做:
levels(test.data$factor.var1) %in% levels(train.data$factor.var1)
这将生成一个对应于test.data中因子级别的逻辑向量,其中" FALSE"条目是您的train.data中没有的因子水平。
答案 1 :(得分:0)
simple.solutions对此将是rbind测试数据与训练数据和预测,然后子集你想要预测的行。这对我有用