【发布时间】:2020-05-28 04:54:55
【问题描述】:
我有一些随机生成的数据,我正在尝试围绕这些数据构建回归模型。这是数据:
set.seed(1)
x <- rnorm(100)
y <- x - 2 * x^2+rnorm(100)
我想执行 LOOCV 并找到使用最小二乘法拟合模型导致的错误。以下是使用boot 的方法:
library(boot)
Data = data.frame(x, y)
set.seed(1)
glm.fit = glm(y ~ x)
cv.glm(Data, glm.fit)$delta
## [1] 5.891 5.889
有没有办法使用caret 复制它?我可以做到这一点,但我不知道是否有办法从model1 中提取错误:
library(caret)
set.seed(1)
df <- data.frame(x,y)
control <- trainControl(method = "LOOCV")
model1 <- train(y ~ x, data = df, trControl = control, method = "lm")
【问题讨论】:
-
嘿,我正在浏览 cv.glm 的代码。它用于 K-folds 验证,调整基本上是针对每个折叠中使用 > 1 的样本。您使用的是 LOOCV,因此不需要此调整。
-
你真的是指 k-fold CV 期间每个折叠的 RMSE 吗?
标签: r regression cross-validation r-caret