【发布时间】:2020-12-23 14:08:32
【问题描述】:
我有一个基于一堆 NLP 数据(每个单词的 tf-idf 值)训练的 randomForest 模型。我想用它来预测一个新的数据集。模型中的特征与新数据中的特征重叠但不完全匹配,因此当我对新数据进行预测时,我得到:
Error in predict.randomForest(object = model, newdata = new_data) :
variables in the training data missing in newdata
我想通过排除模型中未出现在新数据中的所有特征以及新数据中未出现在模型中的所有特征来解决此错误。暂时不考虑对模型准确性的影响(这会显着减少特征的数量,但仍然有很多可以预测的东西),我做了这样的事情:
model$forest$xlevels <- model$forest$xlevels[colnames(new_data)]
# and vice versa
new_data <- new_data[names(model$forest$xlevels)]
这很有效,因为 names(model$forest$xlevels) == colnames(new_data) 为每个功能名称返回了 TRUE。
但是,当我尝试预测结果 new_data 时,我仍然收到 variables in the training data missing in newdata 错误。我相当确定我正在修改模型的正确部分 (model$forest$xlevels),为什么它不起作用?
【问题讨论】:
标签: r machine-learning nlp random-forest