模型使用预处理训练而不处理新数据

时间:2014-10-24 01:37:26

标签: r r-caret

我正在使用带有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选项训练的?如果是这样,新数据不应该像列车那样估算和处理吗?我做错了什么?

感谢您的帮助。

1 个答案:

答案 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)

该错误将在包的下一个版本上修复。

最高