Словарь ИИ
Что такое кросс-валидация
Коротко
Кросс-валидация это способ оценить модель, при котором данные по очереди делят на части для обучения и проверки, а результаты усредняют.
Машинное обучение · cross-validation
Михаил МозгПроверено: 1 минута чтения
Ребенку
Представь, что в классе пять команд и вы устраиваете викторину. Каждый раз одна команда придумывает вопросы, а остальные отвечают. Потом роли меняются, пока вопросы не придумает каждая команда. Так видно, кто действительно знает предмет, а кому просто попались легкие вопросы. Компьютер проверяют похожим способом, по очереди и много раз.
Простыми словами
Если отложить для проверки одну часть данных, результат может зависеть от удачи: попались легкие примеры, и модель выглядит сильнее, чем на самом деле. Поэтому данные делят, например, на пять равных частей. Модель учат на четырех, проверяют на пятой и повторяют, пока каждая часть не побывает проверочной. Пять оценок усредняют и смотрят, насколько сильно они разбросаны. Так в дело идут все примеры, и вывод получается устойчивее. Похоже на дегустацию, где каждое блюдо по очереди пробуют разные гости, а не один.
Для бизнеса
Этот метод нужен, когда данных мало: сотни клиентов, десятки аварий оборудования, редкие мошеннические операции. Одно случайное деление на таких объемах может дать и восторг, и разочарование. Минус в цене: модель обучают столько раз, сколько частей, поэтому расчеты растут в пять-десять раз. Для больших нейросетей это часто неподъемно, и там обходятся одной проверочной частью. Подвох в данных со временем: продажи разных лет перемешивать нельзя, иначе модель «подсматривает» будущее и оценка завышается. Спросите, как делили данные и каков разброс результатов между частями. Большой разброс значит, что обещанной цифре доверять рано. Особенно это важно в прогнозе спроса и загрузки.
Для специалиста
Кросс-валидация (cross-validation) это семейство методов оценки обобщающей способности модели повторными разбиениями данных. В k-блочной схеме (k-fold) выборку делят на k частей, модель k раз обучают на k-1 блоках и проверяют на оставшемся, метрику усредняют. По документации scikit-learn, большинство авторов и эмпирические данные говорят в пользу 5 или 10 блоков вместо исключения по одному (leave-one-out), которое дает высокую дисперсию оценки. Варианты: стратифицированная (StratifiedKFold) сохраняет доли классов в блоках; групповая (GroupKFold) не пускает один объект, например пациента, одновременно в обучение и проверку; для временных рядов TimeSeriesSplit учит на прошлом и проверяет на следующем отрезке, потому что обычные схемы предполагают независимые одинаково распределенные примеры. Предобработку обучают внутри каждого блока через Pipeline. Чтобы подбирать гиперпараметры и одновременно честно оценивать результат, применяют вложенную кросс-валидацию (nested cross-validation).
Пример
У производителя было всего восемьдесят случаев отказа насосов за пять лет. Вместо одного деления команда провела кросс-валидацию по пяти блокам с группировкой по насосам и увидела, что точность сильно прыгает от блока к блоку. Стало ясно, что для запуска данных пока мало.
Связанные термины
Вопросы и ответы
Зачем нужна кросс-валидация?
Сколько блоков выбрать для кросс-валидации?
Источники
Где это применяют в компании
Не уверены, нужно ли это вашей компании?
Карта ИИ-решений