Пример данных
#creates a data frame with two features and 100 observations
train = data.frame(salary = sample(2000:3000, 100, replace = TRUE),
revenue = sample(c("A", "B"), 100, replace = TRUE))
#five NAs on random positions for the salary feature
train[sample(1:nrow(train), 5), "salary"] <- NA
test = data.frame(salary = sample(2000:3000, 100, replace = TRUE),
revenue = sample(c("A", "B"), 100, replace = TRUE))
test[sample(1:nrow(test), 5), "salary"] <- NA
Преобразование данных
transformation <- preProcess(train[, ], method = c("medianImpute",
"scale", "center"))
transformed_train <- predict(transformation, newdata = train[, ])
transformed_test <- predict(transformation, newdata = test[, ])
Перекрестная проверка
trControl = trainControl(method = "repeatedcv",
number = 5,
repeats = 5,
classProbs = TRUE,
savePredictions = TRUE,
verboseIter = TRUE)
Моделирование
model_knn <- caret::train(revenue ~ .,
data = transformed_train,
method = "knn",
preProcess = c("scale", "center", "knnImpute"),
trControl = trControl)
confusionMatrix(predict(model_knn, transformed_test), transformed_test$revenue)
Cotext
Выше я привел пример того, как данные могут быть вменены с использованием функции preProcess изпакет карета.PreProcess также можно использовать на этапе моделирования.
Вопрос
Вместо использования функции препроцессирования Caret, я хотел бы знать, как реализовать пакет импутации MICE?Идея состоит в том, чтобы использовать результат вмененного тренировочного набора в тестовом наборе.
Полагаю, единственное, что нужно обновить, это часть Преобразование данных .