Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Erstellen Einer Polynomialen Regression | Polynomiale Regression
Lineare Regression mit Python
course content

Kursinhalt

Lineare Regression mit Python

Lineare Regression mit Python

1. Einfache Lineare Regression
2. Multiple Lineare Regression
3. Polynomiale Regression
4. Das Beste Modell Auswählen

book
Erstellen Einer Polynomialen Regression

Datei laden

Für dieses Kapitel haben wir eine Datei namens poly.csv. Laden wir die Datei und schauen uns den Inhalt an.

123456
import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/poly.csv' df = pd.read_csv(file_link) print(df.head(5))
copy

Hier haben wir also ein Merkmal und das Ziel. Lassen Sie uns ein Streudiagramm erstellen.

123456789
import pandas as pd import matplotlib.pyplot as plt file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/poly.csv' df = pd.read_csv(file_link) X = df['Feature'] y = df['Target'] plt.scatter(X,y) plt.show()
copy

Es ist schwer vorstellbar, dass eine gerade Linie diese Daten gut anpasst. Also lass uns eine Polynomiale Regression erstellen!

Aufbau der X̃-Matrix

Wir werden erneut die OLS-Klasse verwenden. Dennoch müssen wir eine -Matrix erstellen. Wir machen das manuell, indem wir eine quadratische Feature-Spalte zum DataFrame hinzufügen, wie folgt:

Aber wenn wir eine hochgradige polynomiale Regression erstellen wollen, erfordert das das Hinzufügen vieler solcher Spalten. Glücklicherweise bietet Scikit-Learn eine Möglichkeit, dies weniger schmerzhaft mit der PolynomialFeatures-Klasse zu tun.

Hinweis

Die Methode fit_transform(X) erwartet, dass X entweder ein 2D-Array oder ein pandas DataFrame ist. Wenn Ihr X ein 1D-numpy-Array ist, wird die Methode reshape(-1,1) es in ein 2D-Array mit denselben Inhalten umwandeln:

Wenn Ihr X eine Spalte aus einem DataFrame ist, können Sie X = df[['col1']] verwenden, um ein DataFrame anstelle einer pandas Series zu erhalten, die nicht für fit_transform() geeignet ist.

X = df['Feature'] # X ist eine pandas Series X = df[['Feature']] # X ist ein pandas DataFrame

Um ein für die Polynomialregression vom Grad n zu erstellen, würden wir verwenden:

Hinweis

Die Klasse PolynomialFeatures fügt auch eine Spalte mit 1en hinzu, sodass Sie sm.add_constant() nicht verwenden müssen.

Aufbau der Polynomialregression und Vorhersagen treffen

Da wir wissen, wie man ein erhält, sind wir bereit, die Polynomialregression auf die gleiche Weise wie die vorherigen Modelle zu erstellen:

Um neue Werte vorherzusagen, sollte X_new ebenfalls mit PolynomialFeatures transformiert werden.

Das folgende ausführbare Beispiel zeigt den gesamten Prozess des Aufbaus einer Polynomialregression. X_new ist hier ein 1D-Array von Punkten zwischen -0.1 und 1.5. Sie werden für die Visualisierung benötigt. Und da es sich um ein 1D-Array handelt, sollten wir die Methode reshape(-1,1) anwenden, bevor wir es in der PolynomialFeatures-Klasse verwenden.

123456789101112131415161718
import pandas as pd import numpy as np import matplotlib.pyplot as plt import statsmodels.api as sm from sklearn.preprocessing import PolynomialFeatures # Import PolynomialFeatures class file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/poly.csv' df = pd.read_csv(file_link) n = 2 # A degree of the polynomial regression X = df[['Feature']] # Assign X as a DataFrame y = df['Target'] # Assign y X_tilde = PolynomialFeatures(n).fit_transform(X) # Get X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train the model X_new = np.linspace(-0.1, 1.5, 80).reshape(-1,1) # 2-d array of new feature values X_new_tilde = PolynomialFeatures(n).fit_transform(X_new) # Transform X_new for predict() method y_pred = regression_model.predict(X_new_tilde) plt.scatter(X, y) # Build a scatterplot plt.plot(X_new, y_pred) # Build a Polynomial Regression graph
copy

Fühlen Sie sich frei, mit den Werten von n in der achten Zeile zu experimentieren. Sie werden sehen, wie sich das Diagramm je nach Grad der polynomialen Regression ändert. Wenn Sie genau hinsehen, werden Sie bemerken, wie unterschiedlich die Vorhersagen für Feature-Werte sind, die kleiner als 0 oder größer als 1,4 sind. Das ist das Thema des nächsten Kapitels.

Betrachten Sie den folgenden Code. In welchem Fall wird der Code fehlerfrei ausgeführt?

Betrachten Sie den folgenden Code. In welchem Fall wird der Code fehlerfrei ausgeführt?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 3
We're sorry to hear that something went wrong. What happened?
some-alt