Условие
Объясните bias-variance trade-off. Что такое смещение модели, что такое дисперсия, как они связаны с переобучением и недообучением. Приведите примеры моделей с высоким bias и высокой variance.
Решение
Подход
Разложение ошибки: E[(y - ŷ)^2] = Bias^2 + Variance + irreducible noise.
- Bias — систематическая ошибка из-за слишком упрощённых допущений модели. Линейная регрессия на принципиально нелинейных данных = высокий bias (недообучение).
- Variance — насколько прогноз меняется при изменении обучающей выборки. Глубокое дерево без ограничения глубины перепутает шум с сигналом = высокая variance (переобучение).
Чем сложнее модель, тем ниже bias, но выше variance — это и есть trade-off. Минимум общей ошибки лежит в середине.
Что с этим делать
| Симптом | Что снижать | Инструменты |
|---|---|---|
| Train loss и test loss оба большие, и близки | Bias | Усложнить модель, добавить признаки, обучать дольше |
| Train loss маленький, test большой | Variance | Регуляризация (L1/L2), dropout, ранняя остановка, больше данных, ансамбли (bagging) |
| Оба маленькие | Ничего | Деплой |
# Простая иллюстрация на полиномах разной степени
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import make_pipeline
# degree=1 -> высокий bias
# degree=15 -> высокая variance
for d in [1, 3, 15]:
model = make_pipeline(PolynomialFeatures(d), LinearRegression())Подводные камни
- Bias и variance — про ожидание по разным обучающим выборкам, а не про одну конкретную модель. На одном train/test split вы видите лишь точечную оценку.
- Бустинг снижает bias (последовательное обучение на ошибках), bagging — variance (усреднение независимых моделей). Путаница в направлении — частая ошибка.
- Регуляризация увеличивает bias, чтобы снизить variance — это компромисс, а не «бесплатный обед».
Эталонный ответ
Bias — недообучение из-за упрощений, variance — переобучение из-за чувствительности к выборке. Полная ошибка = Bias^2 + Variance + шум. Снижать в зависимости от того, что больше: усложнять/добавлять данные/регуляризовать.