如何在 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 知道它是否适合你!
我正在尝试解决名为 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 知道它是否适合你!