Bias-variance tradeoff простыми словами

Карьерник — квиз-тренажёр в Telegram с 1500+ вопросами для собесов аналитика. SQL, Python, A/B, метрики. Бесплатно.

Короткое объяснение

Bias-variance tradeoff — фундаментальный принцип ML: модель делает ошибки по двум причинам.

  • Bias (смещение): модель слишком простая, не улавливает зависимости
  • Variance (дисперсия): модель слишком сложная, улавливает шум

Снижение bias обычно увеличивает variance и наоборот.

Формула

Total error = Bias² + Variance + Irreducible noise

Цель — минимизировать sum (bias² + variance). Полностью обнулить невозможно из-за noise.

Underfitting vs Overfitting

Underfitting (bias высокий)

Модель слишком простая. Пропускает паттерны.

Признак: плохие метрики и на train, и на test.

Пример: линейная регрессия на нелинейных данных.

Overfitting (variance высокий)

Модель слишком сложная. Запоминает шум.

Признак: отличная метрика на train, плохая на test.

Пример: decision tree с 1000 листьев на 1000 наблюдений.

Идеал — баланс

Хорошие метрики на train и на test, близкие друг к другу.

Визуально

Error
  |
  |  Total error
  |     \             /
  |      \___________/
  |      / \       / \
  |    /    \    /    \
  |  Bias   \ Variance
  +---------+------------> Complexity
             ^
        Sweet spot

Bias падает с ростом complexity. Variance растёт. Total error — U-shape.

Примеры моделей

Высокий bias

  • Линейная регрессия на нелинейных данных
  • Decision tree глубиной 1 (stump)
  • Всегда предсказывать mean

Высокий variance

  • Deep neural network без регуляризации
  • Decision tree без ограничения глубины
  • K-NN с K=1

Как балансировать

1. Увеличить данные

Больше данных → меньше variance без роста bias. Универсальное лекарство.

2. Регуляризация

L1/L2 regularization → уменьшает variance, добавляя немного bias.

3. Ансамбли

  • Bagging (Random Forest): снижает variance
  • Boosting (XGBoost): снижает bias

4. Feature selection

Меньше features → меньше variance. Но может вырасти bias.

5. Cross-validation

Правильно оценить generalization. Без CV можно думать, что модель хорошая, а она overfit.

6. Early stopping

В boosting / neural nets — остановить обучение до overfitting.

7. Сложность модели

Сначала простая. Если underfit — усложнить.

Bias-variance в аналитике

A/B-тест

Noise (variance) сложно уменьшить — нужна большая выборка. Через CUPED можно снизить variance.

Прогноз продаж

ARIMA — высокий bias (простая модель). LSTM на маленьких данных — высокий variance. Баланс: Prophet, XGBoost time series.

Customer segmentation

Мало кластеров (K=2) — underfit. Много (K=50) — overfit.

Churn prediction

Logistic regression — высокий bias. Random Forest — средний. Stacked ensemble — низкий bias, но variance надо контролировать.

Как определить

Learning curves

График ошибки на train и test по мере добавления данных.

  • Train ошибка низкая, test высокая → overfit
  • Обе высокие → underfit

Validation curves

График ошибки по complexity (hyperparameter).

  • Train падает, test возрастает → overfit
  • Обе высокие → underfit

Cross-validation

Многократное разделение train/test. Stable performance → good balance.

На собесе

«Что такое bias-variance tradeoff?» Ошибка модели = bias² + variance. Они компенсируют друг друга.

«Что такое overfitting?» Высокая variance. Модель слишком сложная, запоминает train.

«Как балансировать?» Данные, регуляризация, ансамбли, CV.

«Random Forest vs Logistic Regression?» RF — более сложная, ниже bias, выше variance. LR — наоборот.

Deep double descent (современное)

Новое открытие: при очень высокой complexity test error снова падает. Это breakthrough-эффект в deep learning.

Классический tradeoff применим к «классическим» моделям. Neural nets с миллиардами параметров иногда ведут себя иначе.

Частые ошибки

1. Overfitting на train

«Модель 99% accuracy» → почти всегда overfit. Всегда считайте на test.

2. Одна train/test split

Single split не надёжен. Используйте cross-validation.

3. Регуляризация без настройки

L2 с λ=0 — как без регуляризации. Нужен hyperparameter tuning.

4. Data leakage

Использование train данных для scaling / feature engineering → test получает информацию о train.

5. Игнорировать irreducible noise

Если noise в данных — идеальная модель невозможна. Не гоняйтесь за 100% accuracy.

Связанные темы

FAQ

Что такое irreducible noise?

Часть ошибки, которую нельзя убрать даже идеальной моделью. Из-за случайности в данных.

Больше данных всегда лучше?

Да, для variance. Для bias — нет, нужна правильная модель.

Какая модель имеет низкие bias и variance?

Hyperparameter-tuned ensemble на большом dataset. Но даже они имеют tradeoff.

Bias-variance в A/B?

Мотивация: большая выборка → меньше variance в estimate effect.


Тренируйте ML — откройте тренажёр с 1500+ вопросами для собесов.