随机森林:处理 R 中因子水平的错误
random forest: error in dealing with factor levels in R
我在 R
中使用 rf
模型来预测二进制结果 0 或 1。我的输入数据中有分类变量(编码为数字),这些变量在训练时被编码为因子。我在 R
中使用 factor()
函数将变量转换为因子。所以对于每个分类变量x
,我的代码是这样的。
feature_x1=factor(feature_x1) # Convert the variable into factor in training data.
#This variable takes 3 levels 0,1,2
这在训练模型时非常有效。让我们假设我的模型对象是 rf_model
。而 运行 新数据模型只是一个数字向量。我首先将数字转换为 feature_x1
的因子
newdata=data.frame(1,2)
colnames(newdata)=c("feature_x1","feature_x2")
newdata$feature_x1=factor(newdata$feature_x1)
score=pred(rf_model,newdata,type="prob")
我收到以下错误
Error in predict.randomForest(rf_model, newdata,type = "prob") :
New factor levels not present in the training data
如何处理这个错误,因为在现实中,在训练模型之后,我们总是要处理结果未知的数据,这只是一条记录。
如果需要更清晰的说明或代码,请告诉我
尝试
newdata$feature_x1 <- factor(newdata$feature_x1, levels=levels(feature_x1))
我在 R
中使用 rf
模型来预测二进制结果 0 或 1。我的输入数据中有分类变量(编码为数字),这些变量在训练时被编码为因子。我在 R
中使用 factor()
函数将变量转换为因子。所以对于每个分类变量x
,我的代码是这样的。
feature_x1=factor(feature_x1) # Convert the variable into factor in training data.
#This variable takes 3 levels 0,1,2
这在训练模型时非常有效。让我们假设我的模型对象是 rf_model
。而 运行 新数据模型只是一个数字向量。我首先将数字转换为 feature_x1
newdata=data.frame(1,2)
colnames(newdata)=c("feature_x1","feature_x2")
newdata$feature_x1=factor(newdata$feature_x1)
score=pred(rf_model,newdata,type="prob")
我收到以下错误
Error in predict.randomForest(rf_model, newdata,type = "prob") : New factor levels not present in the training data
如何处理这个错误,因为在现实中,在训练模型之后,我们总是要处理结果未知的数据,这只是一条记录。
如果需要更清晰的说明或代码,请告诉我
尝试
newdata$feature_x1 <- factor(newdata$feature_x1, levels=levels(feature_x1))