Какие причины переобучения
Что проверяют
Понимаете ли вы переобучение как разрыв между качеством на обучении и на новых данных, а не как абстрактное «модель слишком сложная». Следом почти всегда спрашивают, как вы заметите переобучение и что сделаете для конкретной модели, например градиентного бустинга.
Как отвечать
Начните с определения: модель выучила шум и частности обучающей выборки, поэтому метрика на train высокая, а на валидации заметно ниже. В терминах смещения и разброса это высокий разброс (variance). Затем причины:
- ёмкость модели велика относительно данных: деревья без ограничения глубины, много признаков при малом числе объектов, большая сеть на тысяче примеров;
- мало данных: выборка не покрывает реальное разнообразие, и модели проще запомнить объекты, чем найти закономерность;
- шум в разметке и выбросы: модель старательно подгоняется под ошибочные метки;
- слишком долгое обучение: у сетей и бустинга ошибка на валидации после некоторой эпохи или итерации начинает расти;
- подбор под валидацию: сотни прогонов гиперпараметров на одном отложенном наборе, и модель в итоге переобучена уже под него.
Диагностика: кривые обучения, разрыв между train и validation, кросс-валидация для честной оценки. Кросс-валидация переобучение не лечит, она его показывает.
Методы борьбы привяжите к модели: L1 и L2 регуляризация, dropout и weight_decay в сетях, ранняя остановка по валидации; в деревьях max_depth и min_samples_leaf, в бустинге ещё небольшой learning_rate, subsample и ранняя остановка; для картинок и текста аугментации; отбор признаков; больше данных как самый надёжный, хоть и дорогой способ.
Где спотыкаются
Называют дисбаланс классов причиной переобучения. Модель, которая всегда предсказывает мажорный класс, скорее недообучена, это отдельная проблема с метриками и весами классов.
Путают переобучение с утечкой данных. При утечке валидация тоже выглядит отлично и разрыва нет, пока модель не попадёт на реальные данные.
Говорят «параметров больше, чем объектов, значит переобучится». Большие сети при правильной регуляризации обобщают хорошо, поэтому смотреть нужно на валидацию, а не считать веса.