Перехресна перевірка leave-one-out у r (з прикладами)
Щоб оцінити продуктивність моделі на наборі даних, нам потрібно виміряти, наскільки прогнози, зроблені моделлю, відповідають даним спостереження.
Зазвичай використовуваний метод для цього відомий як Leave-One-Out Cross-Validation (LOOCV) , який використовує такий підхід:
1. Розділіть набір даних на навчальний набір і тестовий набір, використовуючи всі спостереження, крім одного, як частину навчального набору.
2. Створіть модель, використовуючи лише дані з навчальної множини.
3. Використовуйте модель для прогнозування значення відгуку спостереження, виключеного з моделі, і обчисліть середню квадратичну помилку (MSE).
4. Повторіть цей процес n разів. Обчисліть тестовий MSE як середнє значення всіх тестових MSE.
Найпростіший спосіб запустити LOOCV у R — це використати функцію trainControl() із бібліотеки кареток у R.
Цей підручник містить короткий приклад використання цієї функції для виконання LOOCV для даної моделі в R.
Приклад: перехресна перевірка Leave-One-Out у R
Припустімо, що ми маємо такий набір даних у R:
#create data frame df <- data.frame(y=c(6, 8, 12, 14, 14, 15, 17, 22, 24, 23), x1=c(2, 5, 4, 3, 4, 6, 7, 5, 8, 9), x2=c(14, 12, 12, 13, 7, 8, 7, 4, 6, 5)) #view data frame df y x1 x2 6 2 14 8 5 12 12 4 12 14 3 13 14 4 7 15 6 8 17 7 7 22 5 4 24 8 6 23 9 5
Наступний код показує, як підігнати модель множинної лінійної регресії до цього набору даних у R і виконати LOOCV для оцінки продуктивності моделі:
library (caret) #specify the cross-validation method ctrl <- trainControl(method = " LOOCV ") #fit a regression model and use LOOCV to evaluate performance model <- train(y ~ x1 + x2, data = df, method = " lm ", trControl = ctrl) #view summary of LOOCV print(model) Linear Regression 10 samples 2 predictors No pre-processing Resampling: Leave-One-Out Cross-Validation Summary of sample sizes: 9, 9, 9, 9, 9, 9, ... Resampling results: RMSE Rsquared MAE 3.619456 0.6186766 3.146155 Tuning parameter 'intercept' was held constant at a value of TRUE
Ось як інтерпретувати результат:
- Для створення 10 моделей було використано 10 різних зразків. Кожна модель використовувала 2 змінні предиктора.
- Попередня обробка не проводилась. Тобто ми жодним чином не масштабували дані перед підгонкою моделей.
- Метод повторної вибірки, який ми використовували для створення 10 зразків, був перехресною перевіркою «Залишити один».
- Розмір вибірки для кожного навчального набору становив 9.
- RMSE: середня квадратична помилка. Це вимірює середню різницю між прогнозами, зробленими моделлю, і фактичними спостереженнями. Чим нижче RMSE, тим точніше модель може передбачити фактичні спостереження.
- Rsquared: це міра кореляції між прогнозами моделі та фактичними спостереженнями. Чим вищий R-квадрат, тим точніше модель може передбачити фактичні спостереження.
- MAE: Середня абсолютна похибка. Це середня абсолютна різниця між прогнозами, зробленими моделлю, і фактичними спостереженнями. Чим нижчий MAE, тим точніше модель може передбачити фактичні спостереження.
Кожне з трьох вимірювань, наданих у результаті (RMSE, R-квадрат і MAE), дає нам уявлення про продуктивність моделі на неопублікованих даних.
На практиці ми зазвичай підбираємо кілька різних моделей і порівнюємо три показники, надані представленими тут результатами, щоб вирішити, яка модель дає найнижчий рівень помилок тестування і, отже, є найкращою для використання.