Beispiel für eine polynomielle Regression in Python

WBOY
Freigeben: 2023-06-10 09:17:50
Original
1931 Leute haben es durchsucht

Polynomielle Regression ist eine Methode, die häufig bei Regressionsproblemen verwendet wird. Sie erstellt ein Modell, indem Polynomdaten an die Daten angepasst werden, sodass das Modell den Zielwert genauer vorhersagen kann. Python bietet eine Fülle von Bibliotheken für Datenverarbeitung und maschinelles Lernen, mit denen sich polynomielle Regressionsmodelle problemlos implementieren lassen. In diesem Artikel wird die Implementierung der Polynomregression in Python vorgestellt und ein Beispiel basierend auf der Polynomregression gegeben.

1. Das Prinzip der Polynomregression

Das Prinzip der Polynomregression ist relativ einfach, nämlich den Wert der unabhängigen Variablen durch eine Polynomfunktion zu erklären. Das heißt:

$y = b_0 + b_1x_1 + b_2x_2^2 + ... + b_nx_n^n$

wobei $y$ die abhängige Variable ist, $b_0, b_1, b_2, ..., b_n$ ist Der Regressionskoeffizient $x_1, x_2, ..., x_n$ sind unabhängige Variablen. Da die Polynomregression die Flexibilität des Modells verbessern kann, wird sie häufig bei Problemen verwendet, die ein hohes Maß an Anpassung erfordern.

2. Python implementiert die Polynomregression

In Python kann die Polynomregression über die Scikit-Learn-Bibliothek implementiert werden. Die scikit-learn-Bibliothek ist eine häufig verwendete Bibliothek für maschinelles Lernen in Python und bietet verschiedene Modelle und Tools zum Verarbeiten von Daten und zum Erstellen von Modellen.

Das Folgende ist ein einfacher Implementierungsschritt für die Polynomregression:

  1. Importieren Sie die erforderlichen Bibliotheken
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
Nach dem Login kopieren

Hier werden die LinearRegression-Klasse und die PolynomialFeatures-Klasse in der Numpy-Bibliothek, der Matplotlib-Bibliothek und der Sklearn-Bibliothek importiert.

  1. Daten vorbereiten
# 创建数据
x = np.linspace(-10, 10, num=50).reshape(-1, 1) # 自变量数据
y = np.sin(x) + np.random.randn(50, 1) * 0.2 # 因变量数据
Nach dem Login kopieren

Die Linspace-Funktion in der Numpy-Bibliothek wird verwendet, um 50 unabhängige Variablendaten mit gleichem Abstand von -10 bis 10 zu generieren, und die Sin-Funktion wird verwendet, um die abhängigen Variablendaten zu generieren. Um die Ergebnisse realistischer zu machen, wird auch etwas zufälliges Rauschen hinzugefügt.

  1. Trainingsmodell
# 使用多项式模型拟合数据
poly_reg = PolynomialFeatures(degree=5) # degree表示多项式的次数
x_poly = poly_reg.fit_transform(x)
lin_reg = LinearRegression()
lin_reg.fit(x_poly, y)
Nach dem Login kopieren

Die PolynomialFeatures-Klasse wird verwendet, um die unabhängige Variable x in ein Polynom umzuwandeln, und dann wird die LinearRegression-Klasse verwendet, um die Polynomdaten zu verarbeiten. Verwenden Sie die Anpassungsmethode, um das Modell zu trainieren.

  1. Visualisierte Ergebnisse
# 可视化结果
plt.scatter(x, y)
plt.plot(x, lin_reg.predict(poly_reg.fit_transform(x)), color='red')
plt.show()
Nach dem Login kopieren

Die Matplotlib-Bibliothek wird hier verwendet, um die Ergebnisse zu visualisieren. Die Rohdaten werden über ein Streudiagramm dargestellt und eine polynomiale Regressionskurve in die Grafik eingezeichnet.

3. Beispiel einer Polynomregression

Betrachten Sie ein Beispiel: Vorhersage der Fahrstrecke basierend auf der Geschwindigkeit und Bremszeit des Autos. Zur Lösung dieses Problems nutzen wir den von Udacity bereitgestellten Datensatz. Der Datensatz umfasst die Geschwindigkeit des Fahrzeugs, die Bremszeit und die entsprechende Fahrstrecke.

  1. Importieren Sie die benötigten Bibliotheken und Daten
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures

# 读入数据
data = pd.read_csv('data/car.csv')
Nach dem Login kopieren

Hier wird der in einer CSV-Datei gespeicherte Fahrzeugdatensatz eingelesen.

  1. Datenvorverarbeitung
# 提取特征和目标
X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values

# 将刹车时间转为2维数据
X = X.reshape(-1, 1)

# 划分训练集和测试集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)
Nach dem Login kopieren

Die Pandas-Bibliothek wird hier verwendet, um die Daten in das DataFrame-Format einzulesen. Verwenden Sie dann die iloc-Methode, um Features und Ziele nach Spalten zu extrahieren, und verwenden Sie die Reshape-Funktion, um die Bremszeit in zweidimensionale Daten umzuwandeln. Verwenden Sie abschließend die Funktion train_test_split, um den Datensatz proportional in einen Trainingssatz und einen Testsatz aufzuteilen.

  1. Trainieren und testen Sie das Modell
# 训练模型
poly_reg = PolynomialFeatures(degree = 2)
X_poly = poly_reg.fit_transform(X_train)
lin_reg = LinearRegression()
model = lin_reg.fit(X_poly, y_train)

# 可视化结果
plt.scatter(X_train, y_train, color='red')
plt.plot(X_train, lin_reg.predict(poly_reg.fit_transform(X_train)), color='blue')
plt.title('Car distance prediction')
plt.xlabel('Speed + Brake Time')
plt.ylabel('Distance')
plt.show()

# 测试模型
y_pred = model.predict(poly_reg.fit_transform(X_test))
Nach dem Login kopieren

Die PolynomialFeatures-Klasse wird verwendet, um die Daten in ein quadratisches Polynom umzuwandeln, und dann wird die LinearRegression-Klasse verwendet, um die Polynomdaten zu verarbeiten. Verwenden Sie dann die Anpassungsmethode, um das Modell zu trainieren. Verwenden Sie abschließend die Vorhersagemethode, um die Ergebnisse des Modells vorherzusagen.

  1. Bewertungsmodell
# 计算评估指标
from sklearn.metrics import mean_squared_error, r2_score
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
r2 = r2_score(y_test, y_pred)

print('Root Mean Squared Error: ', rmse)
print('R2 Score: ', r2)
Nach dem Login kopieren

Die Funktionen „mean_squared_error“ und „r2_score“ in der sklearn-Bibliothek werden zur Berechnung der Bewertungsindikatoren verwendet, bei denen es sich um den quadratischen Mittelfehler (RMSE) bzw. das Bestimmtheitsmaß (R2) handelt.

Durch die obigen Schritte können wir das Polynom-Regressionsmodell verwenden, um die Fahrstrecke des Autos vorherzusagen.

Zusammenfassung

Dieser Artikel stellt das Prinzip der polynomialen Regression und ihre Implementierung in Python vor. Anhand eines Vorhersagebeispiels für Automobildaten können wir die Vorteile der polynomialen Regression bei der Erstellung von Modellen und der Vorhersage von Ergebnissen erkennen. Natürlich weist die Polynomregression auch einige Mängel auf, z. B. Überanpassung und andere Probleme. Daher ist es in praktischen Anwendungen erforderlich, geeignete Regressionsmethoden und -parameter entsprechend der tatsächlichen Situation auszuwählen.

Das obige ist der detaillierte Inhalt vonBeispiel für eine polynomielle Regression in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage