Недообучение (Underfitting) — это проблема в машинном обучении, когда модель оказывается слишком простой, чтобы уловить основные закономерности и взаимосвязи в данных. В результате она плохо работает как на обучающей выборке, так и на новых данных.

Простая аналогия

Вернёмся к аналогии со студентом:

  • Переобучение: Студент зазубрил учебник, но не понимает сути.
  • Идеальная модель: Студент понял принципы и может решать любые задачи по теме.
  • Недообучение: Студент даже не открыл учебник — у него недостаточно знаний, чтобы решить вообще какие-либо задачи по теме.

Суть проблемы

Недообученная модель обладает высоким смещением (high bias). Она делает чрезмерно упрощённые предположения о данных, игнорируя важные особенности и закономерности. Её предсказательная способность изначально ограничена.

Визуальный пример (на регрессии)

Представьте, что у нас есть данные, которые явно следуют криволинейной зависимости (например, параболе):

  1. Недообученная модель: Попытается аппроксимировать данные простой прямой линией. Она будет плохо описывать кривизну, и ошибка будет большой везде.
  2. Хорошо обученная модель: Использует полиномиальную кривую (например, параболу), которая хорошо соответствует истинной зависимости.
  3. Переобученная модель: Использует очень сложную кривую, проходящую через каждую точку с шумом.

На графике недообученная модель — это всегда чрезмерно сглаженная, примитивная линия, далёкая от реальных данных.

Причины недообучения

  1. Слишком простая модель:
    • Использование линейной модели для данных со сложной нелинейной зависимостью.
    • Дерево решений с глубиной 1 (пень) для сложной классификации.
    • Нейронная сеть всего с одним-двумя нейронами.
  2. Недостаточное количество признаков (features). Модели не хватает информации для прогноза. Например, попытка предсказать стоимость дома только по его площади, игнорируя район, этаж, год постройки и т.д.
  3. Чрезмерная регуляризация. Регуляризация (штраф за сложность) введена с слишком большим коэффициентом, что “душит” модель, не позволяя ей выучить закономерности.
  4. Слишком малое время обучения (для итеративных алгоритмов, таких как градиентный спуск или обучение нейросетей). Модель просто не успела сойтись к хорошему решению.
  5. Неправильная предобработка данных. Например, наличие большого количества шума или выбросов, которые модель (из-за своей простоты) не может отделить от полезного сигнала.

Как диагностировать недообучение?

Ключевой признак: модель показывает низкую производительность и на обучающем, и на тестовом наборах данных.

  • Кривые обучения (Learning Curves) — основной инструмент. Если кривые ошибок на обучении и валидации сходятся на высоком значении ошибки, это явный признак высокого смещения (недообучения).
  • Метрики качества (Accuracy, F1, R², MSE) будут низкими на всех выборках.

Методы борьбы с недообучением

  1. Увеличить сложность модели:
    • Для деревьев — увеличить максимальную глубину (max_depth).
    • Для нейросетей — добавить слои и нейроны.
    • Использовать более сложные алгоритмы (например, заменить линейную регрессию на полиномиальную или градиентный бустинг).
  2. Добавить новые, полезные признаки (Feature Engineering):
    • Создать новые признаки на основе существующих (например, “площадь на комнату”).
    • Добавить полиномиальные или взаимодействующие признаки.
    • Использовать более продвинутые методы извлечения признаков.
  3. Уменьшить регуляризацию. Снизить коэффициент регуляризации (например, alpha, lambda, C), чтобы ослабить штраф за сложность и дать модели больше свободы.
  4. Увеличить время/количество итераций обучения.
  5. Убрать “шумовые” признаки (в некоторых случаях). Парадоксально, но иногда удаление нерелевантных признаков помогает модели сосредоточиться на главном и улучшить обобщение, что может помочь и при недообучении, вызванном “проклятием размерности”.

Итог: Баланс между Смещением и Разбросом (Bias-Variance Tradeoff)

Недообучение и Переобучение — две стороны одной медали, описываемой фундаментальной дилеммой машинного обучения — компромиссом между смещением и разбросом (Bias-Variance Tradeoff).

  • Высокое смещение (Недообучение): Модель слишком проста, делает сильные предположения, недостаточно гибкая. Ошибка вызвана неправильными предположениями самой модели.
  • Высокий разброс (Переобучение): Модель слишком сложна, чрезмерно чувствительна к шуму в обучающих данных, слишком гибкая. Ошибка вызвана большой чувствительностью к небольшим колебаниям в данных.

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