Демонстрация и объяснение алгоритма обучения машинного обучения линейной регрессии с использованием простой программы и применения алгоритма на Python.

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

Цель линейной регрессии — найти «наиболее подходящую» линию, которая описывает взаимосвязь между входными переменными и выходной переменной. Эта линия наилучшего соответствия называется линией регрессии. Линия регрессии представляет собой прямую линию, которая минимизирует расстояние между прогнозируемыми значениями и фактическими значениями выходной переменной. Другими словами, линия регрессии — это линия, которая обеспечивает наиболее точные прогнозы выходной переменной с учетом входных переменных.

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

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

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

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

Нахождение линии регрессии

Общее уравнение прямой линии:

y = mx + b

где:

y is the dependent variable (also known as the output variable)
x is the independent variable (also known as the input variable)
m is the slope of the line
b is the y-intercept (the point where the line intersects the y-axis)

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

Вот пример того, как это работает:

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

# importing the graphing library
import matplotlib.pyplot as plt
# Input data
x = [1, 2, 3, 4, 5]
y = [2, 4, 5, 4, 5]
# Plot the data on a scatter plot graph
plt.scatter(x, y)
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

Вот полная программа для построения данных на диаграмме рассеяния.

# Import the graphing library
import matplotlib.pyplot as plt
# Input data
x = [1, 2, 3, 4, 5]
y = [2, 4, 5, 4, 5]
# Plot the data on a scatter plot graph
plt.scatter(x, y)
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

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

Уклон линии (м) можно рассчитать по следующей формуле:

m = (NΣ(xy) — ΣxΣy) / (NΣ(x²) — (Σx)²)

где:

N is the total number of data points
Σxy is the sum of the products of x and y
Σx and Σy are the sums of x and y, respectively
Σ(x^2) is the sum of the squares of x

Подставив значения из нашего примера, получим:

m = ((5 * 42) — (15 * 4)) / ((5 * 55) — (15²)) = 0.6

Далее мы можем найти точку пересечения оси y (b) линии, используя следующую формулу:

b = (Σy — mΣx) / N

Подставив значения из нашего примера, получим:

b = (20 — (0.6 * 15)) / 5 = 1

Итак, уравнение линии регрессии имеет вид:

y = 0.6x + 1

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

# Importing the library
import numpy as np
# Calculate the regression line
m = 0.16
b = 1
x_line = np.linspace(0, 6)
y_line = m * x_line + b
# Plot the data and regression line
plt.scatter(x, y)
plt.plot(x_line, y_line, color='red')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

Из графика мы видим, что линия регрессии достаточно хорошо соответствует данным.

Вот полная программа

# Importing the library
import numpy as np
# Calculate the regression line
m = 0.16
b = 1
x_line = np.linspace(0, 6)
y_line = m * x_line + b
# Plot the data and regression line
plt.scatter(x, y)
plt.plot(x_line, y_line, color='red')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

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

# importing the necessary libraries
import numpy as np
from sklearn.linear_model import LinearRegression
# Input data
x = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 5, 4, 5])
# Create a linear regression model
model = LinearRegression()
# Train the model using the input data
model.fit(x, y)
# Predict the value of y for a new input value of x
new_x = np.array([[6]])
predicted_y = model.predict(new_x)
print("Predicted value of Y for X = 6: ", predicted_y)

Прогнозируемое значение Y для X = 6: [5.8]

Эта программа сначала импортирует необходимые библиотеки и определяет входные данные как массивы numpy.

Затем он создает объект LinerRegression и аппроксимирует модель с помощью метода fit с X и Y в качестве входных параметров. Это обучает модель на заданных входных данных.

Наконец, он использует метод predict объекта LinearRegression для прогнозирования значения Y, которое затем выводится на консоль.

Вот полная программа машинного обучения, реализующая простую линейную регрессию.

# importing the necessary libraries
import numpy as np
from sklearn.linear_model import LinearRegression
# Input data
x = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 5, 4, 5])
# Create a linear regression model
model = LinearRegression()
# Train the model using the input data
model.fit(x, y)
# Predict the value of y for a new input value of x
new_x = np.array([[6]])
predicted_y = model.predict(new_x)
print("Predicted value of Y for X = 6: ", predicted_y)

Не забудьте поделиться, если вам понравилось, и если у вас есть какие-либо вопросы или вопросы, напишите мне в twitter по адресу @thehackersbrain.