Диагностика Mock-интервью
Главная · Основы машинного обучения

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

Самая простая модель машинного обучения — и при этом фундамент, на котором строится всё остальное: от логистической регрессии до нейросетей. Если понять её до конца, половина вопросов на собеседовании перестанет пугать.

Интуиция

Представь, что ты риелтор и хочешь предсказывать цену квартиры по её площади. У тебя есть история сделок — точки на графике «площадь → цена». Линейная регрессия (linear regression) говорит: давай проведём через эти точки прямую так, чтобы она в среднем ошибалась как можно меньше. Дальше для любой новой квартиры мы просто смотрим, где её площадь пересекает прямую — это и есть прогноз.

Модель для одного признака выглядит так:

ŷ = w·x + b

Здесь w — наклон (вес признака), b — сдвиг (bias, где прямая пересекает ось y), а ŷ — предсказание. Для многих признаков всё то же самое, только признаков и весов становится больше: ŷ = w1x1 + w2x2 + … + b.

Как измерить «хорошесть» прямой

Нужна функция потерь (loss function) — число, которое говорит, насколько модель плоха. Стандартный выбор — среднеквадратичная ошибка (MSE, mean squared error): берём разницу между предсказанием и правдой для каждой точки (это называется остаток, residual), возводим в квадрат и усредняем:

MSE = (1/n) · Σ (yi − ŷi

Почему именно квадрат? Две причины. Во-первых, квадрат сильнее наказывает большие ошибки: промахнуться на 10 в 100 раз хуже, чем на 1. Во-вторых, парабола гладкая и дифференцируемая — по ней удобно спускаться градиентом. Обратная сторона: из-за квадрата модель очень чувствительна к выбросам (outliers) — одна аномальная точка может сильно развернуть прямую. Если выбросов много, берут MAE (среднюю абсолютную ошибку) — она устойчивее.

💡 Ключевая мысль Обучение модели = поиск параметров (w, b), при которых функция потерь минимальна. Эта формула «модель + лосс + оптимизация» повторяется во всём ML, вплоть до GPT.

Как найти лучшие параметры

Есть два пути, и на собеседовании полезно знать оба:

Как читать обученную модель

Вес wj — это «на сколько изменится прогноз при увеличении признака j на единицу, при прочих равных». Это делает линейную регрессию любимой моделью там, где важна интерпретируемость. Но осторожно: сравнивать веса между собой можно только если признаки приведены к одному масштабу, а при сильно скоррелированных признаках (мультиколлинеарность) отдельные веса становятся нестабильными и теряют смысл.

Качество обычно описывают метрикой — доля дисперсии целевой переменной, которую объясняет модель: 1 — идеально, 0 — не лучше, чем предсказывать среднее.

⚠️ Подводный камень Линейная регрессия линейна по параметрам, а не по признакам. Никто не мешает подать на вход x², log(x) или произведения признаков — модель останется «линейной» и решаемой теми же методами. Забыв это, легко на собеседовании ошибочно сказать, что она «не может выучить нелинейность».
🎤 На собеседовании
  • «Почему MSE, а не MAE?» — квадрат дифференцируем и сильнее штрафует большие ошибки; MAE устойчивее к выбросам.
  • «Когда нормальное уравнение, а когда градиентный спуск?» — аналитика хороша при малом числе признаков; спуск масштабируется на большие данные и стриминг.
  • «Что будет при скоррелированных признаках?» — веса нестабильны, помогает регуляризация (L2/ridge) или отбор признаков.
  • «Как модель отреагирует на выброс?» — сильно сдвинется из-за квадрата ошибки; проверь в интерактиве мысленно, куда утянула бы прямую точка высоко над остальными.