如何在 R 中交叉验证后将 knn 模型应用于测试数据集

How to apply knn model on the test dataset after cross validation in R

我正在尝试解决名为 Titanic- Machine Learning from Disaster 的著名问题。

我想应用 knn 从测试数据集中预测 survived。我也想使用 cross-validation 然后想将它应用到我的测试数据集。

代码结构如下:

install.packages("caret")
library(caret)

knn_2_train <- knn_1_train # train dataset
knn_2_train$Survived <- train$Survived
Survived <- as.factor(train$Survived) # train labels

knn_2_test <- knn_1_test # test dataset

trControl <- trainControl(method  = "cv", number  = 5)

fit <- train(knn_2_train, Survived,
             method = "knn",
             tuneGrid   = expand.grid(k = 1:50),
             metric     = "Accuracy",
             trControl  = trControl
             )

现在,我不确定如何在 cross-validation 之后为测试数据集应用 knn 模型。

任何类型的建议都是可取的。

您可以执行以下操作;

test.df$predObs <- predict(
   object  = fit,
   newdata = test.df
)

这会将您的预测存储为 predObs 在您的测试集 test.df 中,然后您可以使用各种性能指标对其进行评估。

祝你项目顺利!

注意:记得更改test.df,使其与您的测试数据相对应。让 med 知道它是否适合你!