我正在使用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
与以前相同。请问为什么?我认为交叉验证的不同方式不会给我相同的结果。您能给我一些解决问题的建议吗?