Что такое bias (смещение) в предсказаниях модели машинного обучения?

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

Ответ

Bias (смещение) — это систематическая ошибка модели, возникающая из-за её неспособности адекватно описать истинную взаимосвязь в данных. Модель с высоким смещением делает упрощенные предположения, что приводит к постоянному недо- или переоцениванию целевой переменной. Это признак недообучения.

Пример: Попытка аппроксимировать квадратичную зависимость с помощью простой линейной регрессии.

import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# Генерируем нелинейные данные (y = x^2)
X = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
y_true = np.array([1, 4, 9, 16, 25])

# Модель с высокой предвзятостью (слишком простая)
model = LinearRegression()
model.fit(X, y_true)
y_pred = model.predict(X)

print(f"Предсказания: {y_pred}")
print(f"MSE (высокая из-за bias): {mean_squared_error(y_true, y_pred):.2f}")
# Модель будет пытаться провести прямую линию через параболу, что неизбежно даст большую ошибку.

Как уменьшить bias?

  • Увеличить сложность модели (например, использовать полиномиальные признаки, деревья решений, нейронные сети).
  • Добавить новые информативные признаки.
  • Уменьшить степень регуляризации.

Важно: Уменьшение bias обычно увеличивает variance (разброс) модели. Задача — найти оптимальный баланс между ними (bias-variance tradeoff).