我正在使用ramdomForest
包来创建随机林模型。可能数据集庞大,有超过一百万个200多个变量的观测值。在使用样本数据训练随机森林时,我无法捕获所有变量的所有因子水平。
因此,在使用predict()
预测验证集时,由于存在未在训练数据中捕获的新因子水平,因此会引发错误。
一种解决方案是确保训练数据变量包含所有因子水平。但事实证明这非常繁琐,而且我并不需要所有因素水平。
在randomForest包中运行predict()
时,是否存在自动排除包含先前未识别因子级别的验证集中的观察值的方法?可以在CRAN文档中找到任何参数。我不认为我可以为这个做一个可重复的例子。
答案 0 :(得分:3)
一种解决方案是组合Train和Test Matrix并在组合矩阵上使用as.factor。然后再分为Train和Test。我在随机森林中遇到了同样的问题,这个解决方案对我有用。
例如:
combine <- rbind(Train,Test)
combine$var1 <- as.factor(combine$var1)
##Then split into Test and Train
Train$var1 <- combine[1:nrow(train)]
similar for Test.
希望这有帮助!