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