← Назад к вопросам

Как выглядит уравнение линейной регрессии?

1.0 Junior🔥 241 комментариев
#Машинное обучение#Статистика и A/B тестирование

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI29 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Как выглядит уравнение линейной регрессии?

Линейная регрессия — один из фундаментальных методов машинного обучения, предназначенный для предсказания непрерывной целевой переменной на основе линейного соотношения между признаками и целью.

Основное уравнение

Для одного признака (простая линейная регрессия):

y = b + w*x

Еде:

  • y — целевая переменная (то, что предсказываем)
  • x — признак (входные данные)
  • w (weight/коэффициент) — наклон прямой, показывает как меняется y при изменении x на 1
  • b (bias/свободный член) — точка пересечения с осью y, значение y когда x=0

Для нескольких признаков (множественная линейная регрессия)

y = b + w₁*x₁ + w₂*x₂ + w₃*x₃ + ... + wₙ*xₙ

Ось матричной форме (часто используется в коде):

y = b + W^T * X

или

ŷ = X * β

Еде:

  • X — матрица признаков (n_samples × n_features)
  • β (бета) — вектор всех параметров (включая b)
  • ŷ — предсказанные значения

Математический вид с ошибкой

В реальности данные не идеально ложатся на прямую, поэтому есть ошибка:

y = b + w₁*x₁ + w₂*x₂ + ... + wₙ*xₙ + ε

Еде:

  • ε (epsilon) — ошибка/остаток (residual), разница между реальным y и предсказанным
  • ε ~ N(0, σ²) — предполагается нормально распределённая с нулевым средним

Практический пример на Python

import numpy as np
from sklearn.linear_model import LinearRegression

# Данные
X = np.array([[1], [2], [3], [4], [5]])  # одна переменная
y = np.array([2, 4, 5, 4, 5])  # целевая переменная

# Обучаем модель
model = LinearRegression()
model.fit(X, y)

# Получить параметры
b = model.intercept_  # свободный член (bias)
w = model.coef_[0]   # коэффициент

print(f"Уравнение: y = {b:.2f} + {w:.2f}*x")

# Предсказание
X_new = np.array([[6]])
y_pred = model.predict(X_new)
print(f"При x=6, y="{y_pred[0]:.2f}")

Функция потерь (что оптимизируем)

Линейная регрессия оптимизирует Mean Squared Error (MSE):

MSE = (1/n) * Σ(y_i - ŷ_i)²

или

MSE = (1/n) * Σ(y_i - (b + w*x_i))²

Цель: найти w и b такие, что MSE минимален.

Решение через нормальные уравнения

Математическое решение в замкнутом виде:

β = (X^T * X)^(-1) * X^T * y

Это даёт оптимальные параметры без итеративной оптимизации:

# Матричное решение (не используем sklearn, чистая математика)
import numpy as np

X = np.array([[1, 1], [1, 2], [1, 3], [1, 4], [1, 5]])  # с колонкой единиц для bias
y = np.array([2, 4, 5, 4, 5])

# β = (X^T * X)^(-1) * X^T * y
beta = np.linalg.inv(X.T @ X) @ X.T @ y
print(f"b={beta[0]:.2f}, w={beta[1]:.2f}")

Что нужно знать о линейной регрессии

Предположения (Assumptions):

  1. Линейность — отношение между X и y линейное
  2. Независимость — наблюдения независимы друг от друга
  3. Гомоскедастичность — дисперсия ошибок постоянна (не меняется)
  4. Нормальность — ошибки нормально распределены
  5. Отсутствие мультиколлинеарности — признаки не коррелируют друг с другом

Когда использовать:

  • Задачи регрессии (предсказание числовых значений)
  • Интерпретируемость важна (видим вес каждого признака)
  • Данные имеют приблизительно линейные отношения

Когда не использовать:

  • Нелинейные данные (используй polynomial regression, tree-based models)
  • Много выбросов (используй robust regression, Huber Loss)
  • Очень много признаков (используй регуляризацию: Ridge, Lasso)

Расширения линейной регрессии

Ridge регрессия (L2 регуляризация):

y = b + w*x + λ*||w||²

Добавляет штраф за большие weights.

Lasso регрессия (L1 регуляризация):

y = b + w*x + λ*||w||

Может обнулять некоторые weights (feature selection).

Полиномиальная регрессия (нелинейное расширение):

y = b + w₁*x + w₂*x² + w₃*x³

Это всё ещё линейная регрессия в смысле параметров, но нелинейная по x.

Итог

Линейная регрессия описывается простым уравнением ŷ = b + w₁x₁ + ... + wₙxₙ, которое ищет наилучший линейный fit для данных, минимизируя MSE. Несмотря на простоту, остаётся одним из самых важных и часто используемых методов в ML благодаря интерпретируемости и эффективности.

Как выглядит уравнение линейной регрессии? | PrepBro