Как ответить
Линейная регрессия — это метод предсказания числового значения (зависимой переменной) на основе одного или нескольких признаков (независимых переменных). По сути мы ищем линейную зависимость вида:
y = w₀ + w₁·x₁ + … + wₙ·xₙ + ε.
Коэффициенты w подбираются так, чтобы сумма квадратов разниц между предсказанными и реальными значениями (MSE) была минимальной — это метод наименьших квадратов (OLS). Для простой регрессии с одним признаком коэффициенты можно вычислить аналитически, для многих — решить нормальное уравнение или применить градиентный спуск.
На практике линейная регрессия хороша как базовая модель: она быстро обучается, легко интерпретируется (коэффициент w₁ показывает, на сколько изменится y при увеличении x₁ на единицу) и служит эталоном для более сложных алгоритмов. Например, предсказать цену квартиры по площади — линейная регрессия даст понятное объяснение: «каждый дополнительный метр добавляет 5000 рублей».
Ключевые моменты для разработчика:
- Модель предполагает линейную связь между признаками и целевой переменной — если зависимость нелинейная, нужно добавлять полиномиальные признаки или переходить к другим моделям.
- Чувствительна к выбросам и мультиколлинеарности (сильная корреляция между признаками делает коэффициенты нестабильными).
- Регуляризация (L1 — Lasso, L2 — Ridge) помогает бороться с переобучением, особенно когда признаков много.
- Метрики качества: R² (доля объяснённой дисперсии), RMSE (среднеквадратичная ошибка), MAE (средняя абсолютная ошибка).
Пример простейшей реализации на Python:
from sklearn.linear_model import LinearRegression
import numpy as np
# Данные: площадь (м²) и цена (тыс. руб.)
X = np.array([[30], [50], [70], [100]])
y = np.array([2500, 4000, 5500, 8000])
model = LinearRegression()
model.fit(X, y)
print(f'Коэффициент: {model.coef_[0]:.2f}')
print(f'Смещение: {model.intercept_:.2f}')
print(f'R²: {model.score(X, y):.3f}')
Этот код обучает модель на четырёх точках и выводит наклон прямой и R². Для реальных задач данные нужно делить на тренировочную и тестовую выборки, масштабировать признаки и проверять допущения.