Множественная линейная регрессия, математика, функция стоимости

В предыдущей статье мы определили основные понятия линейной регрессии, включая простую линейную регрессию, функции стоимости, математику и уравнение прямой линии. Если вы пропустили эту статью, перейдите по ссылке ниже для получения дополнительной информации.



В этой статье мы сосредоточимся на другом типе линейной регрессии, называемой множественной линейной регрессией. Множественная линейная регрессия — это статистический метод, который используется для моделирования взаимосвязи между переменной ответа и несколькими переменными-предикторами. Переменная отклика также известна как зависимая переменная, а переменные-предикторы известны как независимые переменные. Множественная линейная регрессия может использоваться для прогнозирования переменной отклика на основе переменных-предикторов.

Однако важно отметить, что для того, чтобы модель была достоверной, должны выполняться допущения о линейности и независимости от ошибок. Множественная линейная регрессия очень похожа на простую линейную регрессию, за исключением нескольких отличий, которые мы обсудим в этой статье. Цель множественной линейной регрессии — найти наиболее подходящую линию (или гиперплоскость в нескольких измерениях), которая описывает взаимосвязь между переменной ответа и переменными-предикторами. Связь между переменной ответа и переменными-предикторами может быть описана как математическое уравнение:

где:

  • y - отклик или зависимая переменная,
  • x_1, x_2, …, x_n — предикторы или независимые переменные,
  • x_0 - это точка пересечения с осью y, известная как смещение,
  • и w_1, w_2, …, w_n — коэффициенты для каждой переменной-предиктора,
  • левый член уравнения (yhat) представляет значение, которое мы предсказываем на основе входных (предикторов) переменных x.

Коэффициенты представляют собой изменение переменной отклика при изменении переменной-предиктора на одну единицу при сохранении всех остальных переменных-предикторов постоянными. Однако есть еще один способ выразить уравнение множественной линейной регрессии с помощью векторной записи. Мы можем выразить это как скалярное произведение двух векторов:

где:

  • w^T — транспонированный вектор коэффициентов w (также известный как «веса»),
  • x - вектор предикторных переменных,
  • b - точка пересечения с осью y, известная как смещение,
  • Σ обозначает сумму по всем наблюдениям,
  • а левый член уравнения (yhat) представляет значение, которое мы предсказываем на основе входных (прогностических) переменных x.

В этих обозначениях вектор коэффициентов w представляет собой вектор-столбец размерности (D, 1), где D — количество переменных-предикторов или размерность, а вектор переменных-предикторов x — вектор-столбец размерности (D, 1). , где каждый элемент представляет значение переменной-предиктора для данного наблюдения. Y-отрезок b представлен как скалярное значение. Кроме того, если вы хотите узнать больше о векторах и скалярах, ознакомьтесь с этой статьей ниже.



Процесс множественной линейной регрессии включает в себя нахождение значений w и b. Чтобы найти значения, нам нужно определить функцию стоимости для множественной линейной регрессии и отметить, что метка функции стоимости выражается буквой E. Функция стоимости определяется как:

Подобно простой линейной регрессии, нам нужно выполнить частичные выводы функции стоимости, чтобы найти оптимальные значения w и b. Однако, чтобы вывести выражения для нахождения оптимальных значений, нам было бы проще выполнить вывод, используя методы оптимизации, такие как градиентный спуск (GD), стохастический градиентный спуск (SGD) или метод Ньютона (NM). Если вы хотите узнать больше о методах оптимизации, ознакомьтесь с этой статьей.



Функция стоимости градиентного спуска для множественной линейной регрессии определяется как:

где:

  • (y — Xw — b) — (n x 1) вектор невязок,
  • (выражение)^T обозначает транспонирование вектора или матрицы.

Начнем с вывода функции стоимости по параметру w.

После этого вывода мы можем вывести выражение для нахождения коэффициентов.

Важно отметить, что для реализации этого требуется обратная матрица X ^ TX, и если она необратима, то можно использовать методы регуляризации, такие как гребень или лассо, чтобы преодолеть проблему необратимости. В дополнение к поиску оптимального значения переменных w нам нужно найти выражение для нахождения оптимального значения смещения. Однако обычное значение смещения равно 1. Чтобы сделать эту статью полной, мы выполним частную производную функции стоимости по параметру b, чтобы найти оптимальное значение.

где:

  • (1) представляет собой (D x 1) вектор единиц,
  • D — количество единиц в векторе.

После получения выражений параметров нахождения можно переходить к реализации на языке программирования python. Мы реализуем производные выражения параметров w и b. Как и в случае простой линейной регрессии, мы реализуем и определяем эффективность модели, определяя R-квадрат.

import numpy as np

X = [[1, 2, 1], [2, 4, 1], [1, 2, 1], [1, 2, 1], [1, 4, 1]]
Y = [1, 2, 3, 4, 7]

X = np.array(X)
Y = np.array(Y)

w = np.linalg.solve(np.dot(X.T, X), np.dot(X.T, Y))
Yhat = np.dot(X, w)

d1 = Y - Yhat
d2 = Y - Y.mean()
r2 = 1 - d1.dot(d1) / d2.dot(d2)

обратите внимание, что оператор * выполняет поэлементное умножение в numpy np.dot() делает то, что мы ожидаем при умножении матриц, а решение проблемы поиска оптимальных значений для w выполняется с помощью np.linalg.solve(). Более того, мы можем использовать библиотеку sklearn, что еще больше упрощает реализацию множественной линейной регрессии.

from sklearn import linear_model
import numpy as np

Y = [1, 2, 3, 4, 7]
X = [[1, 2, 1], [2, 4, 1], [1, 2, 1], [1, 2, 1], [1, 4, 1]]

X = np.array(X)
Y = np.array(Y)

regr = linear_model.LinearRegression()
regr.fit(X, Y)

regr.score(X,Y)

predictedValue = regr.predict([[4, 5, 1]])

Обратите внимание, что единицы в каждом векторе являются параметрами, которые представляют смещение (1). Разобравшись с множественной линейной регрессией, мы можем перейти к логистической регрессии. Статью о логистической регрессии можно найти по этой ссылке.



Если вам понравилась статья, не забудьте подписаться на мои новые статьи.

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.