Линейная регрессия — это один из простейших алгоритмов машинного обучения, с которого можно начать понимать некоторые основные концепции в этой области. Алгоритм имеет определенные ограничения, которые означают, что для многих реальных ситуаций он требует модификаций (рассмотренных в следующих нескольких постах), но его простота позволяет легко интерпретировать его, и его сразу узнает любой, кто помнит y = mx + b из высокого школьная алгебра.

Какую проблему он решает?

Линейная регрессия моделирует взаимосвязь между независимыми переменными и целевым значением, которое вы хотите предсказать, или зависимой переменной. Он может иметь одну независимую переменную (известную как простая линейная регрессия) или несколько, которые имеют разные отношения с зависимой переменной (известная как множественная линейная регрессия).

Это полезно для задач, где существует линейная зависимость между переменными. Примером такой ситуации является цена продажи дома. Обычно существует цена за квадратный фут, которая определяется местоположением, а затем другие характеристики дома могут добавить или вычесть дополнительную ценность, например, количество ванных комнат или потребность в большом ремонте.

Математика

Математическая модель линейной регрессии:

В этой модели Y — зависимая переменная, нулевой бета — точка пересечения или значение Y, когда все значения X равны нулю, бета от 1 до p — уникальные коэффициенты для каждой независимой переменной, а эпсилон — член ошибки.

Есть несколько способов получить эти коэффициенты и перехватить их, учитывая набор данных для обучения, однако наиболее распространенным является обычная оценка методом наименьших квадратов. Оценка OLS минимизирует сумму квадратов остатков или разницу между оцененным и наблюдаемым значением. Вычислить коэффициенты для модели так же просто, как (X^T * X)^(-1)*X^T*y. В коде это записывается так:

import numpy as np
beta = np.dot(np.linag.inv(np.dot(X.T, X)), np.dot(X.T, y))

Если вы не знакомы с этим обозначением, X — матрица независимых переменных, y — вектор зависимой переменной, а бета — вектор коэффициентов. Чтобы получить предсказанное значение, вы просто берете скалярное произведение признаков и их коэффициентов. Чтобы вычислить точку пересечения с помощью этого метода, добавьте в свою матрицу независимых переменных столбец с постоянным значением 1.

Интерпретация

Одной из самых сильных сторон линейной регрессии является ее интерпретируемость. В этом алгоритме каждый бета-коэффициент представляет, насколько целевая переменная увеличивается или уменьшается, когда соответствующая независимая переменная увеличивается на одну единицу, если все остальные переменные остаются постоянными. Возвращаясь к нашему примеру с ценой продажи дома, если цена за квадратный фут составляет 2 доллара и два дома идентичны по характеристикам, учитываемым при расчете цены, за исключением того, что один на 100 квадратных футов больше, мы ожидаем, что этот дом будет продаваться на 200 долларов дороже.

Допущения и ограничения

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

  1. Зависимая переменная представляет собой линейную комбинацию независимых переменных.
  2. Независимые переменные имеют нормальное распределение. В частности, предполагается многомерная нормальность, что означает, что любая комбинация переменных также имеет нормальное распределение.
  3. Ни одна из независимых переменных не имеет сильной корреляции друг с другом. Высокая корреляция между двумя или более независимыми переменными известна как мультиколлинеарность.
  4. Ошибки в прогнозах не зависят друг от друга. Когда остатки не являются независимыми, это называется автокорреляцией.
  5. Гомоскедастичность (постоянная дисперсия) — дисперсия ошибок постоянна, а не зависит от значений независимых переменных.

Многие наборы реальных данных не соответствуют всем этим предположениям.

Помимо этих предположений, линейная регрессия имеет практическое ограничение на количество независимых переменных, которые можно использовать. В частности, линейная регрессия не подходит, если столбцов функций больше, чем строк обучающих данных. Каждая функция добавляет в модель источник ошибки, и чем больше функций, тем более зашумлены данные. Мы выражаем это как степени свободы (что должно звучать знакомо из вводной статистики, используемой при определении статистической значимости), которые при расчете ошибки модели в линейной регрессии представляют собой количество обучающих строк минус количество признаков. По мере увеличения количества признаков возрастает сложность модели и возрастает риск переобучения. То есть модель сможет точно прогнозировать обучающие данные, но не будет хорошо обобщать.

Что вы можете сделать, чтобы избежать этого? Если возможно, получите больше обучающих данных. Чем на большем количестве данных обучается модель, тем лучше она будет обобщать. Если это невозможно (или в дополнение к большему количеству данных), вы можете использовать регуляризацию, которая является функцией других линейных алгоритмов, таких как Лассо и Ридж-регрессия. Это темы будущих постов, поэтому я больше углублюсь в концепцию регуляризации, а пока знаю, что регуляризация помогает снизить вероятность того, что коэффициенты будут иметь экстремальные значения.

Наконец, на линейную регрессию могут сильно влиять выбросы. Отсечение выбросов во время очистки данных может решить эту проблему, а также регуляризация. Также необходимо масштабировать ваши данные при использовании линейной регрессии, чтобы переменные с большими величинами значений не оказывали непропорционального влияния на прогноз.

Связанные алгоритмы

Существует довольно много линейных алгоритмов, в том числе ранее упомянутые Ридж-регрессия и Лассо, Эластичная сеть и Обобщенные линейные модели. Scikit-Learn Руководство пользователя по линейным моделям содержит обзор этих и других линейных алгоритмов.

Дополнительные ресурсы

Penn State: STAT 501 Методы регрессии. Примечания к курсу

Мастерство машинного обучения: Нежное введение в степени свободы в машинном обучении

Линейная регрессия и другие ключевые понятия для линейных моделей в реальных условиях описаны в моей колоде карточек по машинному обучению: линейные модели. Посмотрите на Etsy!