如何在R中使用SVM正确执行交叉验证?

时间:2019-07-25 18:51:16

标签: r svm cross-validation

我正在使用SVR来预测R中的数字结果。这是我的代码:

 library(caret)
 ctrl <- trainControl(method = "LOOCV", savePred=T)
 mod <- train(Sepal.Length~., data=iris, method = "svmLinear", trControl = ctrl)
 pred_test <-predict(mod,iris)
 cor(iris$Sepal.Length, pred_test)
 MSE(pred_test, iris$Sepal.Length)

这是我的结果:

>  cor(iris$Sepal.Length, pred_test)
[1] 0.930933
>  MSE(pred_test, iris$Sepal.Length)
[1] 0.09118964

如您所见,我正在使用留一法交叉验证。我的问题是,当我使用10倍交叉验证时,为什么R会给我相同的结果? 10折简历的代码是:

 library(caret)
 ctrl <- trainControl(method = "cv", number = 10, savePred=T)
 mod <- train(Sepal.Length~., data=iris, method = "svmLinear", trControl = ctrl)
 pred_test <-predict(mod,iris)
 cor(iris$Sepal.Length, pred_test)
 MSE(pred_test, iris$Sepal.Length)

结果如下:

>  cor(iris$Sepal.Length, pred_test)
[1] 0.930933
>  MSE(pred_test, iris$Sepal.Length)
[1] 0.09118964

与以前相同。请问为什么?我认为交叉验证的不同方式不会给我相同的结果。您能给我一些解决问题的建议吗?

0 个答案:

没有答案