【问题标题】:Warning: Error in predict.randomForest: Type of predictors in new data do not match that of the training data警告:predict.randomForest 中的错误:新数据中的预测器类型与训练数据中的预测器类型不匹配
【发布时间】:2017-12-15 21:20:04
【问题描述】:

我在尝试预测 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))
})

当我从模型中删除两个因子变量以便只剩下两个数值变量时,我没有收到错误消息。

【问题讨论】:

    标签: r shiny random-forest prediction


    【解决方案1】:

    该错误意味着用于训练“RF”模型的数据结构与测试数据结构不同,并且删除因子变量使您的代码工作的事实证实了您遇到的因子存在问题'不一样。

    查看您的代码可能是因为您的训练和测试集不是从相同/唯一的 data.frame 中子集的,并且您进行了多次手动转换(包括手动转换因子)。

    根据您的需要,我会尝试两件事:

    • 将您的集合合并到一个 data.frame 中,并带有一个您可以使用的键列 将训练和测试分开
    • 或创建一个函数来输出可在任务中使用的标准化数据集,并在其中通过测试和训练集 函数(将 NA 设置为显式级别)

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

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

    【讨论】:

      猜你喜欢
      • 2016-11-05
      • 1970-01-01
      • 2018-07-12
      • 2014-09-09
      • 1970-01-01
      • 2020-02-16
      • 1970-01-01
      • 2016-01-12
      • 2021-10-16
      相关资源
      最近更新 更多