R - 老鼠 - 机器学习:重新使用从火车到测试集的插补方案

Tim*_* S. 6 r machine-learning r-mice r-caret

我正在构建一个预测模型,并且正在使用该mice程序包来训练我的训练集中的NA.由于我需要为我的测试集重复使用相同的插补方案,如何将其重新应用于我的测试数据?

# generate example data
set.seed(333)
mydata <- data.frame(a = as.logical(rbinom(100, 1, 0.5)),
                     b = as.logical(rbinom(100, 1, 0.2)),
                     c = as.logical(rbinom(100, 1, 0.8)),
                     y = as.logical(rbinom(100, 1, 0.6)))

na_a <- as.logical(rbinom(100, 1, 0.3))
na_b <- as.logical(rbinom(100, 1, 0.3))
na_c <- as.logical(rbinom(100, 1, 0.3))
mydata$a[na_a] <- NA
mydata$b[na_b] <- NA
mydata$c[na_c] <- NA

# create train/test sets
library(caret)
inTrain <- createDataPartition(mydata$y, p = .8, list = FALSE)
train <- mydata[ inTrain, ] 
test <-  mydata[-inTrain, ]

# impute NAs in train set
library(mice)
imp <- mice(train, method = "logreg")
train_imp <- complete(imp)

# apply imputation scheme to test set
test_imp <- unknown_function(test, imp$unknown_data)
Run Code Online (Sandbox Code Playgroud)

小智 -4

对组合数据集运行小鼠插补,然后将其分为训练和测试,将机器学习分类器拟合到训练集上,然后拟合到测试集上。