Демонстрация и объяснение алгоритма обучения машинного обучения линейной регрессии с использованием простой программы и применения алгоритма на 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.