Простий посібник із перехресної перевірки k-fold
Щоб оцінити продуктивність моделі на наборі даних, нам потрібно виміряти, наскільки прогнози, зроблені моделлю, відповідають даним спостереження.
Найпоширенішим способом вимірювання є використання середньої квадратичної помилки (MSE), яка обчислюється таким чином:
MSE = (1/n)*Σ(y i – f(x i )) 2
золото:
- n: загальна кількість спостережень
- y i : значення відповіді i-го спостереження
- f(x i ): прогнозоване значення відповіді i- го спостереження
Чим ближче прогнози моделі до спостережень, тим нижчим буде MSE.
На практиці ми використовуємо такий процес для розрахунку MSE даної моделі:
1. Розділіть набір даних на набір для навчання та набір для тестування.
2. Створіть модель, використовуючи лише дані з навчального набору.
3. Використовуйте модель, щоб зробити прогнози щодо набору тестів і виміряти MSE тесту.
Тестування MSE дає нам уявлення про те, наскільки добре модель працює з даними, яких вона раніше не бачила. Однак недоліком використання єдиного набору тестів є те, що тест MSE може значно відрізнятися залежно від спостережень, які використовуються в наборах для навчання та тестування.
Один із способів уникнути цієї проблеми — підганяти модель кілька разів, щоразу використовуючи інший набір для навчання та тестування, а потім обчислювати тестову MSE як середнє значення всіх тестових MSE.
Цей загальний метод відомий як перехресна перевірка, а його конкретна форма відома як k-кратна перехресна перевірка .
Перехресна перевірка K-Fold
K-кратна перехресна перевірка використовує такий підхід для оцінки моделі:
Крок 1. Випадково розділіть набір даних на k груп або «згорток» приблизно однакового розміру.
Крок 2. Виберіть одну зі складок як комплект для утримання. Відрегулюйте шаблон до решти k-1 складок. Розрахуйте випробування MSE на основі спостережень у шарі, який був натягнутий.
Крок 3. Повторіть цей процес k разів, кожного разу використовуючи інший набір як набір виключень.
Крок 4: Обчисліть загальну MSE тесту як середнє значення k MSE тесту.
Тест MSE = (1/k)*ΣMSE i
золото:
- k: кількість згинів
- MSE i : Перевірте MSE на i-й ітерації
Як вибрати К
Загалом, чим більше складок ми використовуємо в k-кратній перехресній перевірці, тим менше зміщення тесту MSE, але вище дисперсія. І навпаки, чим менше фолдів ми використовуємо, тим вище зсув, але менша дисперсія. Це класичний приклад компромісу зміщення та дисперсії в машинному навчанні.
На практиці зазвичай ми використовуємо від 5 до 10 шарів. Як зазначено у Вступі до статистичного навчання , було показано, що ця кількість кратностей забезпечує оптимальний баланс між упередженням і дисперсією і, таким чином, забезпечує надійні оцінки MSE тесту:
Підводячи підсумок, існує компроміс дисперсії зміщення, пов’язаний з вибором k у k-кратній перехресній перевірці.
Як правило, враховуючи ці міркування, виконується k-кратна перехресна перевірка з використанням k = 5 або k = 10, оскільки емпірично було показано, що ці значення дають оцінки частоти помилок тесту, які не зазнають ні надмірно високого зміщення, ні дуже високої дисперсії.
– Сторінка 184, Вступ до вивчення статистики
Переваги перехресної перевірки K-Fold
Коли ми розділяємо набір даних на один набір для навчання та один набір для тестування, тестовий MSE, розрахований на основі спостережень у наборі для тестування, може значно відрізнятися залежно від спостережень, використаних у наборах для навчання та тестування.
Використовуючи k-кратну перехресну перевірку, ми можемо розрахувати тест MSE, використовуючи кілька різних варіантів наборів для навчання та тестування. Це дає нам набагато більше шансів отримати неупереджену оцінку MSE тесту.
K-кратна перехресна перевірка також забезпечує обчислювальну перевагу перед Leave-One-Out Cross-Validation (LOOCV), оскільки вона має підганяти модель лише k разів замість n разів.
Для моделей, підгонка яких потребує багато часу, k-кратна перехресна перевірка може обчислити тестову MSE набагато швидше, ніж LOOCV, і в багатьох випадках тестова MSE, обчислена за допомогою кожного підходу, буде досить подібною, якщо ви використовуєте достатню кількість згорток.
Розширення перехресної перевірки K-Fold
Існує кілька розширень k-кратної перехресної перевірки, зокрема:
Повторна k-кратна перехресна перевірка: тут k-кратна перехресна перевірка просто повторюється n разів. Щоразу, коли навчальні та тестові набори змішуються, це ще більше зменшує зміщення в тестовій оцінці MSE, хоча це займає більше часу, ніж звичайна k-кратна перехресна перевірка.
Перехресна перевірка з виключенням: це окремий випадок k-кратної перехресної перевірки, у якій k = n . Детальніше про цей метод можна дізнатися тут .
Стратифікована k-кратна перехресна перевірка: це версія k-кратної перехресної перевірки, у якій набір даних переставляється таким чином, щоб кожна згортка репрезентувала ціле. Як зазначив Кохаві , цей метод, як правило, пропонує кращий компроміс між зміщенням і дисперсією порівняно зі звичайною перехресною перевіркою k-кратності.
Вкладена перехресна перевірка: тут k-кратна перехресна перевірка виконується в кожній перехресній перевірці. Це часто використовується для налаштування гіперпараметрів під час оцінки моделі.