Как понять, что модель недообучена или переобучена?
Что проверяют
Умеете ли вы читать разрыв между обучающей и проверочной ошибкой и знаете ли лечение для каждого случая.
Как отвечать
Диагноз ставится по сравнению качества на обучающей и на отложенной выборке.
Недообучение (высокое смещение): качество плохое и там, и там. Модель не выучила даже закономерности обучающих данных. Причины: слишком простая модель, мало информативных признаков, слишком сильная регуляризация, недостаточно итераций обучения.
Переобучение (высокий разброс): на обучающей отлично, на проверочной заметно хуже. Модель выучила шум и особенности конкретных примеров. Причины: слишком сложная модель для объёма данных, мало данных, отсутствие регуляризации, слишком долгое обучение.
Инструмент диагностики это кривые обучения: график ошибки на обеих выборках в зависимости от числа итераций или от размера обучающей выборки.
- обе кривые высоко и сошлись, значит недообучение, и добавление данных не поможет;
- кривые разошлись и разрыв не сокращается, значит переобучение, и данные помогут.
Лечение недообучения: усложнить модель, добавить и улучшить признаки, ослабить регуляризацию, обучать дольше.
Лечение переобучения: больше данных, аугментация, регуляризация (штрафы на веса, прореживание нейронов), упрощение модели, ранняя остановка по проверочной выборке, ансамблирование.
Три оговорки, которые отличают полный ответ:
- тестовая выборка трогается один раз. Подбор гиперпараметров по ней это тоже переобучение, только незаметное. Для подбора нужна отдельная проверочная выборка или кросс-валидация;
- разбиение должно соответствовать задаче: для временных рядов только по времени, иначе модель подглядывает в будущее;
- хорошее качество на обеих выборках при плохом качестве в проде это не переобучение, а утечка признака или сдвиг распределения данных.
Где спотыкаются
Смотрят только на итоговую метрику без сравнения выборок.
Подбирают параметры по тестовой выборке.
Считают, что переобучение всегда лечится добавлением данных.
Разбивают временной ряд случайно.