首页 文章

警告:predict.randomForest中的错误:新数据中的预测变量类型与训练数据的类型不匹配

提问于
浏览
0

在尝试预测Shiny中的单个新实例时,我得到上述错误消息,因此具有不同级别的测试数据不会出现问题 .

RF<-randomForest(incurred_loss2~turnover+Limite.PI+NUTS1,data=sec,importance=TRUE,ntree=2000)

modelPred<-reactive({
  turnoverInput<-as.numeric(input$sliderTurnover)
  LOIInput<-as.numeric(input$sliderLOI)
  LegalInput<-as.factor(input$selectLegal)
  NUTS1Input<-as.factor(input$selectNUTS1)
  predict(RF,newdata=data.frame(legal_form=LegalInput,turnover=turnoverInput,Limite.PI=LOIInput,NUTS1=NUTS1Input))
})

当我从模型中删除两个因子变量时,我只剩下两个数值变量,我没有得到错误信息 .

1 回答

  • 0

    该错误意味着用于训练“RF”模型的数据结构与测试数据结构不同,并且丢弃因子变量使得代码工作确认您遇到的问题与不相同的因素有关 . .

    查看代码可能是因为您的培训和测试集不是来自相同/唯一的data.frame,也可以进行多次手动转换(包括因子的手动转换) .

    根据你的需要,我会看到两件事要尝试:

    • 将您的集合合并为一个data.frame,其中包含可用于分隔列车和测试的键列

    • 或创建一个输出您可以在任务中使用的标准化数据集的函数,并在此函数中传递测试和训练集(将NA设置为显式级别)

    下面的问题示例如果您的某个数据集中有一个NA而另一个数据集没有,则手动转换可能会导致在随机林中使用因子:

    r random forest error - type of predictors in new data do not match

相关问题