ММООЗЗГГ.ru

Словарь ИИ

Что такое кросс-валидация

Коротко

Кросс-валидация это способ оценить модель, при котором данные по очереди делят на части для обучения и проверки, а результаты усредняют.

Машинное обучение · 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).

Пример

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

Связанные термины

Вопросы и ответы

Зачем нужна кросс-валидация?

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

Сколько блоков выбрать для кросс-валидации?

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

Источники

Где это применяют в компании

Не уверены, нужно ли это вашей компании?

Карта ИИ-решений
Написать в Telegram