Самое короткое и понятное объяснение с нуля построчно

Линейная регрессия отвечает за моделирование отношений между переменными путем подбора прямой линии.

Это простейшая линейная связь между двумя переменными «вектор x» и «вектор y» (зависимая и независимая).

«Вектор x» и «вектор y» — это векторы, состоящие из определенного количества компонентов:

Для полного понимания изучите библиотеку NumPy. Это библиотека для работы с многомерными массивами и матрицами.

import numpy as np

X = np.array([4.5, 5, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0])

Количество компонентов в «Векторе x» всегда равно количеству компонентов в «Векторе y».

y = np.array([34, 44, 45, 53, 53, 60, 65, 70])

«x»с индексом«i»​ и «y»с индексом«i»​ являются компонентами «Вектор x» и «вектор y»​. И « = 1..n. Итак:

Время найти «βс индексом 0​» и «βс индексом 1» (отрезок и коэффициент):

X = np.vstack((np.ones(len(X)), X)).T
# [[1.  4.5]
#  [1.  5. ]
#  [1.  5.5]
#  [1.  6. ]
#  [1.  6.5]
#  [1.  7. ]
#  [1.  7.5]
#  [1.  8. ]]

Это равно:

Нахождение значений «вектора β»​ из уравнений является подгонкой модели:

Давайте сделаем это шаг за шагом:

Xt = X.T
Xt_mul_X = Xt.dot(X)
# [[  8.  50.]
#  [ 50. 323.]]

Xt_mul_X_inv = np.linalg.inv(Xt_mul_X)
# [[ 3.8452381 -0.5952381]
#  [-0.5952381  0.0952381]]

Xt_mul_y = Xt.dot(y)
# [ 424.  2750.5]

res = Xt_mul_X_inv.dot(Xt_mul_y)

# [-6.82142857  9.57142857]

Давайте сложим все вместе:

Здесь «Перехват» — это «βс индексом 0​», а «Коэффициент» — это «βс индексом 1».

Сравним результаты с библиотекой sklearn:

Тот же результат. Давайте двигаться вперед!

Матрица с тремя переменными:

А здесь мы получили три коэффициента, потому что «X» здесь — матрица с тремя переменными.
Время использовать эти коэффициенты для предсказания!

X.T.dot(coefficients) + intercept

Просто умножьте «X» на коэффициенты и добавьте точку пересечения.

Теперь собираем все вместе:

Как видите, прогнозируемые значения близки к реальным.

Давайте сравним с библиотечным методом «sklearn»:

Тот же результат.

Теперь, после того как вы поняли, как работает линейная регрессия, пришло время узнать, как вы можете использовать это исследование в реальной жизни:



Найдите полный код здесь: