我正在使用带有preProcess选项的插入符号训练函数:
fit <- train(form,
data=train,
preProcess=c("YeoJohnson","center","scale","bagImpute"),
method=model,
metric = "ROC",
tuneLength = tune,
trControl=fitControl)
预处理训练数据。然而,当我预测,使用NA的观察时,即使我有bagImpute作为选项,它们也被省略。我知道predict.train上有一个na.action参数,但我无法让它工作。
predict.train(model, newdata=test, na.action=???)
假设预测函数自动预处理新数据是否正确,因为模型是使用preProcess选项训练的?如果是这样,新数据不应该像列车那样估算和处理吗?我做错了什么?
感谢您的帮助。
答案 0 :(得分:1)
您将使用na.action = na.pass
。问题是,在制作一个工作示例时,我发现了train
的公式方法和插补的错误。这是一个没有公式方法的例子:
library(caret)
set.seed(1)
training <- twoClassSim(100)
testing <- twoClassSim(100)
testing$Linear05[4] <- NA
fitControl <- trainControl(classProbs = TRUE,
summaryFunction = twoClassSummary)
set.seed(2)
fit <- train(x = training[, -ncol(training)],
y = training$Class,
preProcess=c("YeoJohnson","center","scale","bagImpute"),
method="lda",
metric = "ROC",
trControl=fitControl)
predict(fit, testing[1:5, -ncol(testing)], na.action = na.pass)
该错误将在包的下一个版本上修复。
最高