Открыть сервисСервис

Перекрёстная проверка

Перекрёстная проверка (также кросс-верификация, от англ. cross-validation) — это метод оценки качества статистических моделей и алгоритмов машинного обучения, заключающийся в многократном разбиении исходного набора данных на обучающую и тестовую выборки для проверки способности модели обобщать новые, не использованные при обучении данные. Основная цель перекрёстной проверки — снижение риска переобучения (overfitting) и получение более объективной оценки обобщающей способности модели по сравнению с однократным разбиением на тренировочный и тестовый наборы.

История

Метод перекрёстной проверки восходит к работам по статистическому анализу середины XX века. В 1940-х годах статистики, такие как Морис Кендалл, использовали идею разделения данных для оценки устойчивости результатов. Однако формальное описание метода в современном виде было предложено Сеймуром Гейссером в 1975 году в статье «The Predictive Sample Reuse Method with Applications». В 1977 году Стоун и Гейссер независимо друг от друга разработали обобщённый подход, известный как «кросс-валидация». С развитием компьютерных технологий и машинного обучения в 1990-х — 2000-х годах метод стал стандартным инструментом в анализе данных, особенно в задачах классификации, регрессии и выбора гиперпараметров моделей.

Основные виды перекрёстной проверки

Существует несколько основных вариантов реализации перекрёстной проверки, различающихся способом разбиения данных и вычислительной сложностью.

K-блочная перекрёстная проверка (K-fold cross-validation)

Наиболее распространённый вид. Исходный набор данных случайным образом делится на K равных (или примерно равных) частей (блоков). В каждом из K циклов один блок используется в качестве тестовой выборки, а оставшиеся K-1 блоков — в качестве обучающей. Модель обучается на K-1 блоках и оценивается на оставшемся. Процесс повторяется K раз, и итоговая оценка качества вычисляется как среднее арифметическое по всем циклам. Типичные значения K — 5 или 10, так как они обеспечивают хороший баланс между смещением и дисперсией оценки.

Оставь-один-внешний (Leave-One-Out, LOO)

Частный случай K-блочной проверки, где K равно общему числу наблюдений N. В каждом цикле одно наблюдение используется как тестовое, а остальные N-1 — как обучающие. Процесс повторяется N раз. LOO даёт почти несмещённую оценку ошибки, но требует больших вычислительных затрат при большом объёме данных. Часто применяется на малых выборках (до нескольких сотен наблюдений).

Вариант, при котором данные разбиваются на группы по какому-либо признаку (например, по дате, региону или пациенту). В каждом цикле одна группа полностью исключается из обучения и используется как тестовая. Это полезно, когда наблюдения внутри группы могут быть зависимы (например, повторные измерения одного пациента).

Стратифицированная перекрёстная проверка (Stratified cross-validation)

Применяется для задач классификации с несбалансированными классами. В каждом блоке сохраняется исходное соотношение классов (страт). Это предотвращает ситуации, когда в каком-либо блоке может отсутствовать представитель редкого класса, что исказило бы оценку. Чаще всего используется в сочетании с K-блочной проверкой.

Повторная перекрёстная проверка (Repeated cross-validation)

Метод, при котором K-блочная проверка выполняется несколько раз (например, 10 раз по 5-блочной) с разными случайными разбиениями данных. Это позволяет снизить дисперсию оценки, но увеличивает вычислительные затраты.

Вложенная перекрёстная проверка (Nested cross-validation)

Используется для одновременного выбора гиперпараметров модели и оценки её обобщающей способности без смещения. Внешний цикл (например, 5-блочный) делит данные на обучающие и тестовые части. Внутри каждого цикла внешнего цикла выполняется внутренняя перекрёстная проверка (например, 3-блочная) только на обучающей части для подбора гиперпараметров. Затем модель с лучшими параметрами оценивается на тестовой части внешнего цикла. Это даёт более честную оценку, чем простая проверка, где гиперпараметры подбираются на всём наборе данных.

Применение

Перекрёстная проверка широко используется в различных областях анализа данных и машинного обучения:

  • Выбор модели: сравнение нескольких алгоритмов (например, линейная регрессия, случайный лес, нейронная сеть) для выбора наилучшего по средней ошибке на кросс-валидации.
  • Настройка гиперпараметров: поиск оптимальных значений параметров модели (например, коэффициента регуляризации, глубины дерева) с помощью сеточного поиска (Grid Search) или случайного поиска (Random Search) в сочетании с кросс-валидацией.
  • Оценка обобщающей способности: получение объективной оценки точности модели на новых данных, особенно при ограниченном объёме выборки.
  • Отбор признаков: оценка влияния отдельных признаков на качество модели путём сравнения результатов кросс-валидации с включением и исключением признака.
  • Биоинформатика и медицина: анализ геномных данных, прогнозирование заболеваний, где объём выборки часто мал, а количество признаков велико.

Достоинства и недостатки

Достоинства

  • Снижает риск переобучения по сравнению с однократным разбиением.
  • Даёт более стабильную и надёжную оценку качества модели, особенно на малых выборках.
  • Позволяет эффективно использовать все доступные данные как для обучения, так и для тестирования.
  • Применима к широкому классу моделей и задач.

Недостатки

  • Высокая вычислительная стоимость: обучение модели выполняется многократно, что может быть проблематично для больших наборов данных или сложных моделей (например, глубоких нейронных сетей).
  • При наличии временной зависимости в данных (например, временные ряды) стандартная случайная перекрёстная проверка может давать смещённые оценки, так как нарушает порядок наблюдений. Для таких случаев разработаны специальные методы (например, скользящее окно).
  • Результаты могут быть чувствительны к способу разбиения, особенно при малом K или несбалансированных данных.

Критика и ограничения

Основная критика метода связана с тем, что перекрёстная проверка не гарантирует отсутствия переобучения, если процесс подбора модели (например, выбор гиперпараметров) осуществляется на тех же данных, на которых затем оценивается модель. Вложенная кросс-валидация решает эту проблему, но требует ещё больших вычислительных ресурсов. Кроме того, при наличии сильной корреляции между наблюдениями (например, повторные измерения одного объекта) стандартная кросс-валидация может завышать оценку качества. В таких случаях рекомендуется использовать групповую или стратифицированную проверку.

Источники

  • Geisser, S. (1975). The Predictive Sample Reuse Method with Applications. Journal of the American Statistical Association.
  • Stone, M. (1977). Cross-Validatory Choice and Assessment of Statistical Predictions. Journal of the Royal Statistical Society: Series B.
  • Hastie, T., Tibshirani, R., Friedman, J. (2009). The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer.
  • Kohavi, R. (1995). A Study of Cross-Validation and Bootstrap for Accuracy Estimation and Model Selection. Proceedings of the 14th International Joint Conference on Artificial Intelligence.
  • Arlot, S., Celisse, A. (2010). A survey of cross-validation procedures for model selection. Statistics Surveys.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru