Условие
По каким признакам понятно, что модель переобучилась? Что с этим делать?
Решение
Подход
Диагностика.
- Большой gap между train и val метрикой. Train accuracy 0.99, val 0.75 — классическое переобучение.
- Learning curves. Train loss продолжает падать, val loss выходит на плато или растёт.
- Сложность модели несоразмерна объёму данных. 100k параметров на 1000 примеров — почти гарантированный overfit.
- CV-разброс большой. На разных фолдах метрика прыгает с 0.6 до 0.9.
Что делать.
-
Регуляризация.
- Линейные модели: L1/L2.
- GBM: уменьшить
max_depth,num_leaves,learning_rate; включитьmin_child_samples. - Нейросети: dropout, weight decay, label smoothing.
-
Больше данных.
- Сбор реальных.
- Аугментации (особенно для CV/NLP — crops, flips, paraphrasing).
-
Упростить модель.
- Меньше параметров.
- Меньше признаков (feature selection или L1).
-
Ранняя остановка. На каждой эпохе/итерации мониторим val loss и стопаем при росте N эпох подряд.
-
Ансамблирование. Bagging усредняет шум разных моделей.
-
Проверить утечку. Высокий train + высокий val часто означает, что в train попала тестовая информация.
import matplotlib.pyplot as plt
plt.plot(history["train_loss"], label="train")
plt.plot(history["val_loss"], label="val")
plt.legend() # ищем точку, где val начинает растиПодводные камни
- Переобучение валидации. Если 50 раз подбирать гиперпараметры по одной и той же val — модель «выучивает» эту val. Решение: отдельный test, не трогать его до финала.
- Утечка данных даёт «суперскор» на val. Если val метрика подозрительно хорошая, в первую очередь ищите утечку, а не радуйтесь.
- Регуляризация без масштабирования в линейных моделях — частая ошибка.
- На несбалансированных данных gap между train и val могут размываться метрикой accuracy — смотрите PR-AUC и метрики по позитивному классу.
Эталонный ответ
Переобучение видно по разнице train/val метрик и форме learning curves (train падает, val растёт). Лечится регуляризацией, упрощением модели, увеличением данных, ранней остановкой и ансамблями. Перед паникой проверьте утечку данных — она маскируется под «прекрасную val метрику».