Ответ
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).
Ответ 18+ 🔞
А, блядь, вот эта тема — bias и variance — это вообще классика, хуй с горы! Каждый, кто в машинку лезет, в итоге об неё лоб разбивает. Слушай, сейчас разжую, как есть.
Представь, что ты пытаешься по точкам нарисовать кривую. А у тебя в руках только линейка, ёпта. Вот эта линейка — это и есть модель с высоким 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 — это и есть священный bias-variance tradeoff. Искусство не в том, чтобы убить одного, а в том, чтобы найти такую золотую середину, где они оба сидят тихо и не ебут тебе мозг. Удачи в поисках, это как ходить по охуенно тонкому льду!