Как меняются bias и variance при регуляризации в линейной или логистической регрессии?

«Как меняются bias и variance при регуляризации в линейной или логистической регрессии?» — вопрос из категории Классическое ML, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Регуляризация добавляет штраф за большие значения весов модели к функции потерь, что напрямую влияет на bias-variance tradeoff.

Типы регуляризации и их эффект:

Тип Штраф Основной эффект Влияние на Bias/Variance
L2 (Ridge) Сумма квадратов весов Сжимает все веса, но не обнуляет Уменьшает Variance, слегка увеличивает Bias
L1 (Lasso) Сумма модулей весов Обнуляет менее важные веса (отбор признаков) Сильнее уменьшает Variance, может сильнее увеличить Bias
ElasticNet Комбинация L1 и L2 Баланс между отбором признаков и сжатием весов Компромисс между эффектами L1 и L2

Пример с Ridge регрессией (Scikit-learn):

from sklearn.linear_model import Ridge
from sklearn.model_selection import cross_val_score
import numpy as np

# Генерация данных
X = np.random.randn(100, 5)
y = X.dot([1.5, -2.0, 0, 3.0, 0.5]) + np.random.randn(100) * 0.5

# Модель с регуляризацией
ridge_model = Ridge(alpha=1.0)  # alpha — сила регуляризации
scores = cross_val_score(ridge_model, X, y, cv=5)
print(f"Средний score: {scores.mean():.3f}")

Как выбирать alpha? Сила регуляризации (alpha) — гиперпараметр. Слишком маленькое alpha:

  • Слабая регуляризация → низкий Bias, но высокая Variance (риск переобучения). Слишком большое alpha:
  • Сильная регуляризация → высокий Bias, но низкая Variance (риск недообучения). Оптимальное значение находят с помощью кросс-валидации (например, GridSearchCV).