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

Интуиция за линейной регрессией

Прежде чем мы начнем, давайте взглянем на уравнение множественной линейной регрессии. Y — целевая переменная, которую мы пытаемся предсказать. x1, x2, .. , xn — n переменных-предикторов. b0, b1, .. , bn — n констант, которые нам поможет выяснить модель линейной регрессии (OLS — обычная модель наименьших квадратов). Например, мы можем использовать линейную регрессию для прогнозирования реальной стоимости, например прибыли.

Y = b0 + b1*x1 + b2*x2 + .. + bn*xn
profit = b0 + b1*r_n_d_spend + b2*administration + b3*marketing_spend + b4*state

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

sum ( y_actual - y_hat ) ^ 2 -> minimize

Предположения линейной регрессии

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

  • Линейность: связь между X и средним значением Y является линейной.
  • Гомоскедастичность: дисперсия остатка одинакова для любого значения X.
  • Независимость: наблюдения независимы друг от друга
  • Нормальность: при любом фиксированном значении X Y нормально распределяется.

Реализация модели на python и R

Реализация модели состоит из следующих основных шагов.

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

Предварительная обработка данных

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

Обучение модели

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

Использование питона

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)

Использование R

regressor = lm(formula = Profit ~ ., data = training_set)

Использование модели

Теперь мы используем полученное уравнение для прогнозирования зависимой переменной с использованием независимых переменных тестового набора.

Использование питона

y_pred = regressor.predict(X_test)

Использование R

y_pred = predict(regressor, newdata = test_set)

Визуализация результатов

Визуализация фактических (ось X) и прогнозируемых (ось Y) значений тестового набора

Использование питона

plt.scatter(y_test, y_pred)

Использование R

ggplot() + geom_point(aes(x = test_set$Profit, y = y_pred))

Для полной реализации загляните в мои репозиторий github — python и репозиторий github — R.

Комментарии приветствуются!