Простое руководство по перекрестной проверке 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-фолдная перекрестная проверка
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-кратная перекрестная проверка также обеспечивает вычислительное преимущество перед перекрестной проверкой с исключением одного (LOOCV), поскольку она должна соответствовать модели только k раз, а не n раз.
Для моделей, подгонка которых занимает много времени, k-кратная перекрестная проверка может вычислить тестовую MSE намного быстрее, чем LOOCV, и во многих случаях тестовая MSE, рассчитанная каждым подходом, будет очень похожей, если вы используете достаточное количество сверток.
Расширения перекрестной проверки K-Fold
Существует несколько расширений k-кратной перекрестной проверки, в том числе:
Повторная k-кратная перекрестная проверка: здесь k-кратная перекрестная проверка просто повторяется n раз. Всякий раз, когда обучающий и тестовый наборы смешиваются, это еще больше уменьшает смещение в оценке MSE теста, хотя для завершения этого требуется больше времени, чем при обычной перекрестной проверке в k-кратном размере.
Перекрестная проверка с исключением одного: это особый случай k-кратной перекрестной проверки, в которой k = n . Подробнее об этом методе вы можете узнать здесь .
Стратифицированная k-кратная перекрестная проверка: это версия k-кратной перекрестной проверки, при которой набор данных перестраивается таким образом, что каждая складка представляет целое. Как отметил Кохави , этот метод имеет тенденцию предлагать лучший компромисс между предвзятостью и дисперсией по сравнению с обычной k-кратной перекрестной проверкой.
Вложенная перекрестная проверка: здесь в каждом сгибе перекрестной проверки выполняется k-кратная перекрестная проверка. Это часто используется для настройки гиперпараметров во время оценки модели.