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

Проверь себя · 1/3разбор после ответа
В таблице payments нужно выбрать платежи из России (country = 'RU') со статусом либо 'failed', либо 'chargeback'. Какой WHERE корректный?

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

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

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

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

Формула

Total error = Bias² + Variance + Irreducible noise

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

Underfitting vs Overfitting

Underfitting (bias высокий)

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

Признак: плохие метрики и на обучении (train), и на тесте.

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

Overfitting (variance высокий)

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

Признак: отличная метрика на обучении, плохая на тесте.

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

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

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

Визуально

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

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

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

Высокий bias

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

Высокий variance

  • Глубокая нейросеть без регуляризации
  • Дерево без ограничения глубины
  • K-NN с K=1

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

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

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

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

L1/L2-регуляризация уменьшает variance, добавляя немного bias.

3. Ансамбли

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

4. Отбор признаков

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

5. Кросс-валидация

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

6. Ранняя остановка (early stopping)

В boosting / нейросетях — остановить обучение до оверфита.

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

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

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

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

A/B-тест

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

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

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

Сегментация пользователей

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

Прогноз оттока

Logistic regression — высокий bias. Random Forest — средний. Стекинг-ансамбли — низкий bias, но variance надо контролировать.

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

Кривые обучения (learning curves)

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

  • Train низкая, test высокая → оверфит
  • Обе высокие → underfit

Кривые валидации (validation curves)

График ошибки по сложности (гиперпараметру).

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

Кросс-валидация

Многократное разделение train/test. Стабильное качество → хороший баланс.

На собесе

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

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

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

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

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

Новое открытие: при очень высокой сложности ошибка на тесте снова падает. Это эффект в deep learning.

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

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

1. Оверфит на train

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

2. Одно train/test split

Одно разделение ненадёжно. Используйте кросс-валидацию.

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

L2 с λ=0 — как без регуляризации. Нужен подбор гиперпараметров.

4. Data leakage

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

5. Игнорировать неустранимый шум

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

6. Сравнивать модели на разных сплитах

Две модели оценивали на разных train/test — вывод «A лучше B» ничего не стоит. Нужен один фиксированный сплит или кросс-валидация.

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

FAQ

Что такое неустранимый шум?

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

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

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

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

Настроенный ансамбль на большом датасете. Но даже у них есть tradeoff.

Bias-variance в A/B?

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