r语言 - 当将 train() 函数与交叉验证训练控制一起使用时,您如何查看模型在测试集上的预测?



我是一个初学者,试图学习一些基本的机器学习技术。

我想使用留一交叉验证和 train(( 函数来训练模型。我的功能似乎正常工作。但是,我无法看到模型的测试集预测。给定以下模型,您将如何做到这一点?

# Create custom trainControl: myControl
myControl <- trainControl(
method = "loocv", 
verboseIter = TRUE
)
# Fit glmnet model: model
model <- train(
y ~ ., 
data,
method = "glmnet",
trControl = myControl,
preProcess = c("center", "scale", "pca")
)

您可以在trainControl中设置savePredictions=TRUE

myControl <- trainControl(
method = "loocv", 
savePredictions=TRUE
)
model <- train(
mpg ~ ., 
data,
method = "glmnet",
trControl = myControl,
preProcess = c("center", "scale", "pca"),
tuneGrid = expand.grid(alpha = c(0.1,0.01),lambda = c(0.1,0.01))
)

您可以使用每个参数组合查看预测:

pred obs rowIndex alpha lambda Resample
1 22.56265  21        1  0.10   0.10   Fold01
2 22.59835  21        1  0.10   0.01   Fold01
3 22.57767  21        1  0.01   0.10   Fold01
4 22.59717  21        1  0.01   0.01   Fold01
5 22.12174  21        2  0.10   0.10   Fold02
6 22.14886  21        2  0.10   0.01   Fold02
7 22.13080  21        2  0.01   0.10   Fold02
8 22.14667  21        2  0.01   0.01   Fold02

我测试了 lambda 和 alpha 的 4 种组合,所以你可以在上面看到每个遗漏的观察结果,它是预测

如果有人感兴趣,请回答我自己的后续问题:

myControl <- trainControl(
method = "loocv"
savePredictions = "final",
)
model <- train(
y ~ ., 
data,
method = "glmnet",
trControl = myControl,
preProcess = c("center", "scale", "pca")
)
data$pred <- model$pred[ , "pred"]

最新更新