Как извлечь ошибку перекрестной проверки в карете, как в cv.glm? - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть несколько случайно сгенерированных данных, которые я пытаюсь построить регрессионную модель. Вот данные:

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")

1 Ответ

0 голосов
/ 12 февраля 2020

A print (model1) заявление даст вам это. Это то, что вы искали?

 Linear Regression 

100 samples
  1 predictor

No pre-processing
Resampling: Leave-One-Out Cross-Validation 
Summary of sample sizes: 99, 99, 99, 99, 99, 99, ... 
Resampling results:

  RMSE     Rsquared    MAE     
  2.69966  0.00130345  1.921879

Tuning parameter 'intercept' was held constant at a value of TRUE
...