ENIGMA AI
ENIGMA AI

Что такое линейная регрессия?

встречается 1× junior algorithms

Как ответить

Линейная регрессия — это метод предсказания числового значения (зависимой переменной) на основе одного или нескольких признаков (независимых переменных). По сути мы ищем линейную зависимость вида:

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². Для реальных задач данные нужно делить на тренировочную и тестовую выборки, масштабировать признаки и проверять допущения.

Ключевые тезисы

  • Линейная регрессия моделирует целевую переменную как взвешенную сумму признаков плюс константа (свободный член).
  • Обучение — минимизация среднеквадратичной ошибки (MSE) через метод наименьших квадратов (аналитическое решение или градиентный спуск).
  • Модель простая, интерпретируемая и служит базовой линией для сложных алгоритмов; чувствительна к выбросам и мультиколлинеарности.
  • Для улучшения качества применяют регуляризацию (Ridge, Lasso) и преобразование признаков (полиномы, нормализация).
  • Оценка качества через R², RMSE, MAE — важно смотреть на разницу между train и test метриками для выявления переобучения.

Что спросят дальше

  • — Как бы вы обрабатывали категориальные признаки перед подачей в линейную регрессию?
  • — Что такое мультиколлинеарность и почему она опасна?
  • — В каком случае вы выберете Ridge вместо Lasso и наоборот?

Готовьтесь к собеседованию с ENIGMA AI

AI-суфлёр подсказывает ответы прямо на собеседовании в реальном времени — незаметно для интервьюера.

Скачать приложение