Перейти к основному содержимому

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

Идея метода

В линейной регрессии (linear regression) прогноз строится как линейная комбинация признаков:

y^(x)=w0+w1x1+w2x2+...+wDxD\hat{y}(\mathbf{x})=w_0+w_1 x^1+w_2 x^2+...+w_D x^D

Если ввести в число признаков константную единицу и ввести векторное обозначение

x=[1,x1,x2,...xD]T,w=[w0,w1,w2,...wD]T,\begin{align} \mathbf{x}&=[1,x^1,x^2,...x^D]^T, \\ \mathbf{\mathbf{w}}&=[w_0,w_1,w_2,...w_D]^T, \end{align}

то прогноз линейной регрессии можно записать в компактном виде:

y^(x)=xTw\hat{y}(\mathbf{x})=\mathbf{x}^T \mathbf{w}

Предположения модели состоят в следующем:

  • каждый признак xix^{i} линейно влияет на отклик с коэффициентом wiw_{i}

  • характер влияния каждого признака постоянен и не зависит от значений других признаков.

Достоинства линейной регрессии

Модель простая и интерпретируемая, быстро работает и содержит мало параметров, поэтому наименее склонна к переобучению. Если число признаков DD велико, а число объектов в обучающей выборке NN мало, то модель может оказаться наилучшей среди всех возможных.

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

Недостатки линейной регрессии

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

Нарушение модельных предположений будет приводить к меньшей точности прогнозов.

Моделирование более сложных зависимостей

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

Ранее мы обсуждали, что для многих методов машинного обучения масштаб признаков (диапазон принимаемых значений) влияет на прогнозы. Например, признак [вес] мы можем измерять в килограммах, граммах или тоннах, и это будет оказывать влияние на прогноз.

Будет ли изменение масштаба признаков (после перенастройки модели с новым масштабом) влиять на прогнозы линейной регрессии?

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

Связь с вероятностной моделью

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

y^(x)=w0+w1x1+w2x2+...+wDxD+ε\hat{y}(\mathbf{x})=w_0+w_1 x^1+w_2 x^2+...+w_D x^D+\varepsilon

где εN(0,σ2)\varepsilon\sim\mathcal{N}(0,\sigma^2) - шум, распределённый согласно нормальному распределению (докажите).

А если бы мы взяли ε\varepsilon из распределения Лапласа, то чему бы соответствовал метод максимального правдоподобия?

Минимизации суммы модулей ошибок прогнозов (докажите).

Пример запуска в Python

Пример запуска:
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error

X_train, X_test, Y_train, Y_test = get_demo_regression_data()
model = LinearRegression() # инициализация модели
model.fit(X_train,Y_train) # обучение модели
Y_hat = model.predict(X_test) # построение прогнозов
print(f'Средний модуль ошибки (MAE): \
{mean_absolute_error(Y_test, Y_hat):.2f}')

Больше информации. Полный код.