Условие
Объясните bias-variance tradeoff. В каких терминах его выражают? Какие алгоритмы относят к «high bias» и «high variance»? Как практически уменьшить каждую часть?
Решение
Декомпозиция ошибки
Для квадратичной ошибки:
- Bias — систематическая ошибка: модель в среднем (по разным обучающим выборкам) не попадает в истинную функцию.
- Variance — нестабильность: на разных обучающих выборках модель предсказывает разное.
- Noise — неустранимый шум данных.
Tradeoff
Простая модель: высокий bias, низкий variance (underfitting). Сложная: низкий bias, высокий variance (overfitting). Оптимум — компромисс.
| Модель | Bias | Variance |
|---|---|---|
| Linear regression | высокий | низкий |
| Polynomial degree 1 | высокий | низкий |
| Polynomial degree 15 | низкий | высокий |
| Decision Tree (без ограничений) | низкий | высокий |
| Decision Tree (depth=2) | высокий | низкий |
| Random Forest | низкий | средний |
| Gradient Boosting (мелкие деревья) | низкий | средний |
| KNN (k=1) | низкий | очень высокий |
| KNN (k=N) | очень высокий | низкий |
| Naive Bayes | высокий | низкий |
Что делать с high bias (underfitting)
- Усложнить модель: больше параметров, степень полинома, глубже деревья;
- Добавить признаки или их трансформации;
- Ослабить регуляризацию (уменьшить L1/L2);
- Тренировать дольше, если модель не сошлась.
Что делать с high variance (overfitting)
- Регуляризация (L1, L2, dropout, early stopping);
- Больше данных (всегда уменьшает variance);
- Усреднение моделей (bagging, Random Forest);
- Уменьшить сложность (deeper tree → shallower);
- Cross-validation для подбора гиперпараметров;
- Feature selection — убрать шумовые признаки.
Bagging vs Boosting
- Bagging (Random Forest) уменьшает variance, не меняет bias. Усредняет независимые деревья.
- Boosting (XGBoost, LightGBM) уменьшает bias, но может увеличить variance. Каждое дерево исправляет ошибки предыдущих.
Диагностика на learning curve
- Train ↑, Val ↑ примерно одинаково → high bias;
- Train ↑↑, Val ↑ (большой gap) → high variance;
- Train + Val близко и обе высоки → не учится / Bayes error.
Подводные камни
- «Bias = ошибка на train, Variance = ошибка на test». Не совсем. Bias — это смещение среднего предсказания от истины. Variance — разброс предсказаний.
- «Больше данных всегда хорошо». Снижает variance, но если модель плоха (high bias) — данные не помогут.
- Тестировать модель один раз на test set — и фиксировать. Если многократно подбирать модель по test — это data leakage через researcher degrees of freedom, фактическая ошибка будет выше.
- Cross-validation на временных рядах не должна перемешивать порядок — используйте
TimeSeriesSplit. - Регуляризация без shuffling fold-ов на временных данных смещает оценку.
Эталонный ответ
Ошибка = Bias² + Variance + шум. Простые модели — высокий bias. Сложные — высокий variance. High bias лечат сложностью и фичами; high variance — данными, регуляризацией, ансамблями, упрощением. Bagging уменьшает variance, boosting — bias. Диагностируется по learning curves.