Ответ
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).