Простое руководство по перекрестной проверке 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 групп или «складок» примерно одинакового размера.

Разделить набор данных на k складок

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

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

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

Пример 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-кратная перекрестная проверка. Это часто используется для настройки гиперпараметров во время оценки модели.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *