Простое руководство по K-кратной перекрестной проверке


Чтобы оценить производительность некоторой модели в наборе данных, нам нужно измерить, насколько хорошо прогнозы, сделанные моделью, соответствуют наблюдаемым данным.

Наиболее распространенный способ измерить это — использовать среднеквадратичную ошибку (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-fold .

K-кратная перекрестная проверка

K-кратная перекрестная проверка использует следующий подход для оценки модели:

Шаг 1: Случайным образом разделите набор данных на k групп или «складок» примерно одинакового размера.

Шаг 2: Выберите один из сгибов в качестве опорного набора. Соедините модель с оставшимися k-1 складками. Рассчитайте тестовую MSE по наблюдениям в протянутой кратности.

Шаг 3: Повторите этот процесс k раз, используя каждый раз другой набор в качестве набора удержания.

Шаг 4: Рассчитайте общую тестовую MSE как среднее значение k тестовых MSE.

СКО теста = (1/k)*ΣСКО 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-кратная перекрестная проверка в каждой кратной перекрестной проверке. Это часто используется для настройки гиперпараметров во время оценки модели.