Переобучение и честная проверка (train/test)
Модель можно сделать сколь угодно сложной и заставить идеально пройти через все обучающие точки. Но цель не в этом: модель должна работать на НОВЫХ данных, которых ещё не видела. Здесь прячется главная ловушка машинного обучения — и причина, почему все метрики (AUC, RMSE) надо мерить правильно.
Белые точки — данные, на которых модель учится. Бирюзовая кривая — сама модель. Жёлтые точки — новые данные, которых модель не видела. Ползунок задаёт сложность модели (гибкость кривой).
Разделение на обучение и тест (а надёжнее — кросс-валидация) — базовая гигиена машинного обучения. Все метрики из прошлых уроков (AUC, precision/recall, RMSE) имеют смысл только на отложенных данных. Модель, которую хвалят за точность на обучающих данных, в проде может быть бесполезна.
Это прямое продолжение мысли про размер выборки и честность: красивый результат на тех же данных, на которых подбирали модель, легко оказывается самообманом — заученным шумом.
Переобучение объясняет, почему «гениальная» торговая стратегия, идеально описывающая прошлое, теряет деньги на будущем — она заучила случайности истории.
И почему модель, обученная на одном городе или одной камере, начинает ошибаться в новых условиях: она подстроилась под частности, а не под суть.
Определения
Честность train/test держится на том, что тест НИКАК не участвовал в обучении и подборе. Утечка данных (тест просочился в обучение, или признак «из будущего») рисует красивую, но фальшивую оценку — об этом отдельный урок в «Ловушках».
Деление должно сохранять структуру: для временных рядов тест берут ПОЗЖЕ обучения (нельзя учиться на будущем); для групп (один пользователь — много строк) делят по группам, иначе оценка завышена.
Подробный разбор: математика и механизм (необязательно)
Под капотом — компромисс смещения и разброса (bias-variance). Простая модель имеет большое смещение (систематически мимо), но малый разброс (стабильна между выборками). Сложная — малое смещение, но большой разброс (виляет от выборки к выборке). Ошибка на новых данных ≈ смещение² + разброс + неустранимый шум, и минимум — посередине по сложности.
Бороться с переобучением помогают не только train/test: регуляризация (штраф за сложность), больше данных, упрощение модели, ранняя остановка. Все они сдвигают баланс bias-variance к оптимуму.