Обязательно

Линейная регрессия

Учимся предсказывать числовые значения — самая базовая модель ML, но суперважная для понимания всего остального.

Время изучения: 20 мин

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

Представь, что у тебя есть облако точек на графике — например, площадь квартиры и её цена. Линейная регрессия — это когда мы проводим через эти точки прямую линию так, чтобы она «лучше всего» описывала зависимость. По сути, мы подбираем прямую, которая минимизирует ошибку предсказания.

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

Формула модели

Модель линейной регрессии предсказывает целевую переменную как взвешенную сумму признаков:

y=w0+w1x1+w2x2++wnxny = w_0 + w_1 x_1 + w_2 x_2 + \ldots + w_n x_n
  • w₀ — свободный член (bias, intercept) — сдвиг прямой
  • w₁, w₂, ..., wₙ — веса (коэффициенты) при признаках
  • x₁, x₂, ..., xₙ — значения признаков

В векторной форме это записывается компактно:

y=wx+by = \mathbf{w}^\top \mathbf{x} + b

Главное — понять: модель линейна по параметрам (весам). Признаки при этом могут быть нелинейными — например, x² или log(x). Если добавить x² как новый признак, модель всё ещё линейная регрессия!

Функция потерь: MSE

Чтобы подобрать веса, нужен критерий «хорошести» прямой. Самый популярный — среднеквадратичная ошибка (Mean Squared Error):

MSE=1ni=1n(yiy^i)2\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2

Мы берём разницу между реальным значением yᵢ и предсказанием ŷᵢ, возводим в квадрат (чтобы положительные и отрицательные ошибки не компенсировали друг друга) и усредняем. Чем меньше MSE — тем лучше модель.

Почему именно квадрат?

Квадрат штрафует большие ошибки сильнее маленьких. Если модель ошиблась на 10 — штраф 100, если на 1 — штраф 1. Это и плюс (модель старается не делать грубых ошибок), и минус (чувствительность к выбросам).

Аналитическое решение (МНК)

В отличие от многих других моделей, линейную регрессию можно решить аналитически — без итеративной оптимизации. Метод наименьших квадратов (МНК) даёт точную формулу:

w=(XX)1Xy\mathbf{w} = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{y}
  • X — матрица признаков (n объектов × m признаков)
  • y — вектор целевых значений
  • Xᵀ — транспонированная матрица X
  • (XᵀX)⁻¹ — обратная матрица

На практике: если признаков немного (до нескольких тысяч) — аналитическое решение работает отлично. Если признаков миллионы — используют градиентный спуск, потому что обращение матрицы становится слишком дорогим (O(m³)).

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

Подходит

  • Зависимость между признаками и целевой переменной примерно линейная
  • Нужна интерпретируемость — веса показывают, как каждый признак влияет на результат
  • Мало данных и простая задача
  • Как baseline для сравнения с более сложными моделями

Не подходит

  • Нелинейные зависимости (хотя можно добавлять полиномиальные признаки)
  • Много выбросов — MSE чувствителен к ним
  • Мультиколлинеарность — когда признаки сильно коррелируют друг с другом, веса становятся нестабильными

Регуляризация: Ridge, Lasso, ElasticNet

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

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

L=MSE+αj=1mwj2L = \text{MSE} + \alpha \sum_{j=1}^{m} w_j^2

Штрафует за большие веса, но не зануляет их. Все признаки остаются в модели, но их влияние «сжимается».

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

L=MSE+αj=1mwjL = \text{MSE} + \alpha \sum_{j=1}^{m} |w_j|

Может занулить веса неважных признаков — по сути, делает отбор признаков автоматически. Полезно, когда среди сотни признаков реально важны только десять.

ElasticNet

L=MSE+α1wj+α2wj2L = \text{MSE} + \alpha_1 \sum |w_j| + \alpha_2 \sum w_j^2

Комбинация L1 и L2. Берёт лучшее от обоих: и отбор признаков (от Lasso), и устойчивость (от Ridge).

🎤 На собесе спросят: чем Ridge отличается от Lasso?

Ridge (L2) — сжимает веса к нулю, но не зануляет. Lasso (L1) — может занулить веса, делая автоматический feature selection. При мультиколлинеарности Ridge стабильнее. Если нужно убрать шумовые признаки — Lasso.

Итого

  • Линейная регрессия — фундамент ML, её надо знать идеально
  • Формула: y = wᵀx + b, функция потерь: MSE
  • Аналитическое решение: w = (XᵀX)⁻¹Xᵀy
  • Регуляризация борется с переобучением: Ridge (L2), Lasso (L1), ElasticNet
  • Простая, интерпретируемая, быстрая — идеальный baseline