Полиномиальная регрессия — это популярный метод обучения с учителем, используемый для моделирования связи между независимой переменной (x) и зависимой переменной (y) путем подбора полиномиальной функции к данным. Этот метод часто используется, когда связь между переменными нелинейна. В этом блоге мы обсудим, как реализовать полиномиальную регрессию с помощью Python и библиотеки scikit-learn.

Импорт необходимых библиотек Мы начнем с импорта необходимых библиотек, включая NumPy для числовых операций, Pandas для обработки данных и scikit-learn для алгоритмов машинного обучения.

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures

Загрузка данных

Далее мы загрузим данные из CSV-файла с помощью библиотеки pandas. В этом примере мы будем использовать образец набора данных о ценах на жилье и соответствующих им квадратных метрах.

dataset = pd.read_csv('house_prices.csv')
X = dataset.iloc[:, 0:1].values
y = dataset.iloc[:, 1].values

(В строке кода X = dataset.iloc[:, 0:1].values функция iloc используется для поиска и выбора строк и столбцов набора данных по их целочисленным индексам. Первое двоеточие : указывает, что мы хотим выбрать все строки в наборе данных. Второй аргумент 0:1 указывает, что мы хотим выбрать только столбец с индексом 0, но не включать столбец с индексом 1.

Это сделано потому, что X является независимой переменной в нашей модели полиномиальной регрессии, и мы хотим, чтобы она представляла собой двумерный массив с одним столбцом, как ожидается методом fit_transform() объекта PolynomialFeatures. Выбрав только один столбец с 0:1 вместо скалярного индекса с 0, мы получим двумерный массив с одним столбцом, который является обязательным форматом для X)

Подбор модели полиномиальной регрессии

После загрузки данных мы подгоним модель полиномиальной регрессии к данным. Это включает в себя сначала создание объекта PolynomialFeatures для преобразования независимой переменной (X) в полином заданной степени (например, 2, 3, 4). Затем мы подгоняем модель LinearRegression к преобразованным данным.

poly_reg = PolynomialFeatures(degree=2)
X_poly = poly_reg.fit_transform(X)
lin_reg = LinearRegression()
lin_reg.fit(X_poly, y)

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

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

import matplotlib.pyplot as plt
plt.scatter(X, y, color='red')
plt.plot(X, lin_reg.predict(poly_reg.fit_transform(X)), color='blue')
plt.title('Polynomial Regression')
plt.xlabel('Square Footage')
plt.ylabel('Price')
plt.show()

На полученном графике исходные точки данных будут показаны красным, а прогнозируемые значения из модели полиномиальной регрессии — синим.

Заключение В этом блоге мы обсудили, как реализовать полиномиальную регрессию в Python с помощью библиотеки scikit-learn. Сначала мы загрузили данные, а затем подогнали к ним полиномиальную функцию, используя объект PolynomialFeatures и модель LinearRegression. Наконец, мы визуализировали результаты с помощью графика рассеяния. Полиномиальная регрессия — это мощный инструмент для моделирования нелинейных отношений между переменными, который можно использовать в различных приложениях.