Краткое введение в перекрестную проверку с исключением одного (LOOCV)


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

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

Один из способов избежать этой проблемы — подобрать модель несколько раз, используя каждый раз другой набор для обучения и тестирования, а затем вычислить тестовую MSE как среднее значение всех тестовых MSE.

Этот общий метод известен как перекрестная проверка, а его конкретная форма известна как перекрестная проверка с исключением одного .

Перекрестная проверка с исключением одного

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

1. Разделите набор данных на обучающий набор и тестовый набор, используя все наблюдения, кроме одного, как часть обучающего набора:

Обратите внимание, что мы оставляем только одно наблюдение «вне» обучающего набора. Именно здесь метод получает название «перекрестная проверка с исключением одного».

2. Построить модель, используя только данные из обучающей выборки.

3. Используйте модель, чтобы предсказать значение отклика одного наблюдения, не включенного в модель, и вычислить MSE.

4. Повторите процесс n раз.

Наконец, мы повторяем этот процесс n раз (где n — общее количество наблюдений в наборе данных), каждый раз исключая разные наблюдения из обучающего набора.

Затем мы вычисляем тестовую MSE как среднее значение всех тестовых MSE:

СКО теста = (1/n)*ΣСКО i

куда:

  • n: общее количество наблюдений в наборе данных.
  • MSEi: тестовая MSE во время i -го времени подгонки модели.

Плюсы и минусы LOOCV

Перекрестная проверка с исключением одного предлагает следующие плюсы :

  • Он обеспечивает гораздо менее предвзятую меру тестовой MSE по сравнению с использованием одного тестового набора, потому что мы неоднократно подгоняем модель к набору данных, который содержит n-1 наблюдений.
  • Он имеет тенденцию не переоценивать тест MSE по сравнению с использованием одного набора тестов.

Однако перекрестная проверка с исключением одного имеет следующие недостатки:

  • Это может занять много времени, если n велико.
  • Это также может занять много времени, если модель особенно сложна и требует много времени, чтобы соответствовать набору данных.
  • Это может быть дорого в вычислительном отношении.

К счастью, современные вычисления стали настолько эффективными в большинстве областей, что LOOCV является гораздо более разумным методом для использования по сравнению с тем, что было много лет назад.

Обратите внимание, что LOOCV можно использовать как в настройках регрессии, так и в настройках классификации.Для задач регрессии он вычисляет тестовую MSE как среднеквадратичную разницу между прогнозами и наблюдениями, тогда как в задачах классификации он вычисляет тестовую MSE как процент правильно классифицированных наблюдений во время n повторных подборов модели.

Как выполнить LOOCV в R и Python

В следующих руководствах представлены пошаговые примеры выполнения LOOCV для заданной модели в R и Python.

Перекрестная проверка с исключением одного в R
Перекрестная проверка с исключением одного в Python