Модель обучена с предварительной обработкой с использованием вмененного значения, не обрабатывающего новые данные

Я использую функцию поезда курсора с опцией preProcess:

fit <- train(form,
               data=train,
               preProcess=c("YeoJohnson","center","scale","bagImpute"),
               method=model,
               metric = "ROC",
               tuneLength = tune,
               trControl=fitControl)

Это предварительно обрабатывает данные обучения. Однако, когда я предсказываю наблюдения с NA, они опускаются, хотя у меня есть опция bagImpute. Я знаю, что в predik.train есть параметр na.action, но я не могу заставить его работать.

predict.train(model, newdata=test, na.action=???)

Правильно ли предположить, что функция прогнозирования автоматически выполняет предварительную обработку новых данных, поскольку модель была обучена с использованием параметра preProcess? Если да, то не следует ли вводить и обрабатывать новые данные так же, как поезд? Что я делаю неправильно?

Спасибо за любую помощь.


person John Richardson    schedule 24.10.2014    source источник


Ответы (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)

Ошибка будет исправлена ​​в следующем выпуске пакета.

Максимум

person topepo    schedule 14.11.2014