Линейная регрессия как базовая модель
Формула, геометрический смысл, PHP-реализация.
Линейная регрессия – это та точка, с которой удобно начинать разговор про машинное обучение. Не потому, что она "простая", а потому, что в ней уже есть почти всё.
Здесь уже появляются ключевые элементы машинного обучения:
модель как функция
параметры
ошибка
оптимизация
геометрический смысл
Если понять линейную регрессию, дальше большинство моделей будут восприниматься как её усложнения.
Идея модели
Представим, что у нас есть данные: входы и правильные ответы. Например, площадь квартиры x и её цена y. Мы хотим научиться по входу x предсказывать значение y.
Линейная регрессия предполагает, что зависимость можно аппроксимировать линейной функцией:
Линейная регрессия не была изобретена в одной работе. Её основы связаны с методом наименьших квадратов, который независимо разработали Карл Фридрих Гаусс и Адриен-Мари Лежандр в начале XIX века. Изначально метод применялся в астрономии для обработки наблюдений.
Это обычное уравнение прямой на плоскости.
Здесь:
x – входной признак
w – коэффициент (вес)
b – смещение (bias, свободный член)
y^ – предсказание модели
Если признаков несколько, формула обобщается:
Или в векторной форме, которая важна для ML:
Здесь w и x – векторы, а точка означает скалярное произведение.
По сути, модель отвечает на вопрос: какие веса нужно подобрать, чтобы линейная комбинация признаков как можно лучше совпадала с реальными данными.
Ошибка и функция потерь
Модель сама по себе ничего не означает, пока мы не определили, что такое "хорошо" и "плохо" (для нас, разумеется). Для этого введём понятие ошибки.
Для одного объекта ошибка выглядит так:
Строго говоря, величина e называется остатком (residual), а функция, которую мы оптимизируем (чуть ниже мы о ней поговорим), называется функцией потерь.
Но оптимизировать просто ошибку неудобно – как мы уже говорили в предыдущей главе положительные и отрицательные значения будут взаимно уничтожаться. Поэтому в классической линейной регрессии почти всегда используют квадратичную ошибку:
А для всего датасета – среднеквадратичную ошибку (MSE):
Чем меньше значение MSE, тем точнее модель предсказывает данные. Именно эту величину мы будем минимизировать, подбирая параметры w и b.
Геометрический смысл
Геометрия – ключ к пониманию линейной регрессии.
Один признак – прямая
Если у нас один признак, то данные – это точки на плоскости (x,y). Модель – это прямая. Обучение линейной регрессии означает поиск такой прямой, которая проходит "как можно ближе" к этим точкам. Близость измеряется суммой квадратов ошибок.

Вертикальные отрезки от точек до прямой – это и есть ошибки предсказания.
Несколько признаков – плоскость и гиперплоскость
Если признаков два, модель становится плоскостью. Если признаков больше – гиперплоскостью в многомерном пространстве.
Вектор w задаёт ориентацию этой плоскости (наклон в пространстве), а b – её сдвиг.
Предсказание y^ – это значение линейной функции. Геометрически его можно интерпретировать как проекцию вектора признаков x на направление вектора весов w, с учётом смещения b.
С этой точки зрения линейная регрессия – это задача подбора такого направления в пространстве признаков, которое лучше всего объясняет данные.

Как находятся веса
Существует два основных подхода:
Аналитическое решение через нормальные уравнения
Итеративная оптимизация (градиентный спуск)
В прикладном ML чаще используется второй подход, потому что он масштабируется и логически совпадает с тем, как обучаются нейросети.
Градиентный спуск – интуитивно
Идея простая: представим, что функция потерь – это поверхность. Мы стоим в случайной точке и хотим спуститься в самую низкую.
Градиент показывает направление наибольшего роста функции. Если идти в противоположную сторону, ошибка будет уменьшаться.
Для линейной регрессии производные считаются просто. Для наглядности запишем производные для одного объекта. В случае всего датасета градиенты усредняются по всем примерам.
Эти производные показывают, как изменение параметров влияет на ошибку.
Обновление параметров выглядит так:
Где η – learning rate, шаг обучения.
На каждом шаге параметры немного сдвигаются в сторону уменьшения ошибки.

Почему линейная регрессия так важна
Линейная регрессия кажется простой, но она задаёт фундаментальную схему обучения моделей:
формирует базовый шаблон "модель" → "ошибка" → "оптимизация"
показывает геометрический смысл обучения
учит мыслить векторами и пространствами
напрямую связана с нейросетями (один нейрон без активации – это линейная модель)
Фактически, каждый линейный слой в нейросети – это обобщение линейной регрессии. Разница лишь в количестве слоёв и нелинейностях между ними.
Если вы смогли понять, что происходит здесь, вы уже понимаете одну из важнейших частей машинного обучения – независимо от языка программирования, фреймворка или модной библиотеки.
В следующих главах мы усложним картину и поговорим о том, почему линейности часто недостаточно и как появляются нелинейные модели.
Last updated