【问题标题】:R's predict() function object is not found未找到 R 的 predict() 函数对象
【发布时间】:2016-07-17 18:26:05
【问题描述】:

我试图将新数据传递给预测函数,而新数据是部分的,110 多列中只有 3 列被填充,我收到错误:

eval 中的错误(expr、envir、enclos):找不到对象“单元格”

虽然存在“单元格”列,但下面是我的 R 脚本:

library("AppliedPredictiveModeling")
library("ElemStatLearn")
library("pgmm")
library("rpart")
library("gtools")
library("caret")

# load data
data(segmentationOriginal)

# Subset the data to a training set and testing set based on
# the Case variable in the data set.

training <- segmentationOriginal[which(segmentationOriginal$Case == 
  "Train"), ]

testing <- segmentationOriginal[which(segmentationOriginal$Case == 
  "Test"), ]

# Set the seed to 125 and fit a CART model with the rpart
# method using all predictor variables and default caret
# settings.

set.seed(125)

modFit <- train(Class ~ ., method = "rpart", data = training)

modFit$finalModel

# use new values to predict , TotalIntench2 = 23,000;
# FiberWidthCh1 = 10; PerimStatusCh1=2

# create new data frame based on old data frame columns, this
# will contain new data
training1 <- training[0, ]

# create data frame with test values
newdata = data.frame(TotalIntench2 = 50000, FiberWidthCh1 = 10, 
  VarIntenCh4 = 100)

# use gtools package smartbind()
training1 <- training1[nrow(training1) + 1, ]
training1 <- smartbind(training1, newdata)

# remove initial empty row
training1[-c(1), ]

# inspect
training1[1, 0]

predict(modFit, newdata = training1[1, 0])

如何将填充了部分列的新数据传递给 predict() 函数?

谢谢

【问题讨论】:

  • 投反对票的原因是什么?我想要关于这个问题的指导。
  • 你想听什么? training1 &lt;- training1[nrow(training1) + 1, ] training1 &lt;- smartbind(training1, newdata)?
  • 另外,您的training1[1, 0] 没有列
  • 我正在尝试将 'newdata = data.frame(TotalIntench2 = 50000, FiberWidthCh1 = 10, VarIntenCh4 = 100)' 传递给 predict()
  • 看不到数据或模型是什么样子,这里只是猜测。您确定新创建的数据与您的模型匹配吗?

标签: r machine-learning


【解决方案1】:

我想,一般来说,对于 rpart,你不能传输部分列预测。如果某些列没有数据,请将它们设置为 NA,并将这些列传递给数据框 (newdata)。

只需使用正确的数据应用以下命令。

预测(modFit,新数据)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    相关资源
    最近更新 更多