Erstellung der Polynomialregression
Datei laden
Die Datei poly.csv wird geladen und überprüft:
1234import 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())
Anschließend wird die Beziehung visualisiert:
12345import matplotlib.pyplot as plt X = df['Feature'] y = df['Target'] plt.scatter(X, y) plt.show()
Eine Gerade passt schlecht, daher ist die Polynomregression besser geeignet.
Aufbau der X̃-Matrix
Um X̃ zu erstellen, könnten quadratische Merkmale manuell hinzugefügt werden:
df['Feature_squared'] = df['Feature'] ** 2
Für höhere Grade ist PolynomialFeatures jedoch einfacher. Es erfordert eine 2D-Struktur:
from sklearn.preprocessing import PolynomialFeatures
X = df[['Feature']]
poly = PolynomialFeatures(n)
X_tilde = poly.fit_transform(X)
Es wird außerdem die Konstante Spalte hinzugefügt, daher ist kein sm.add_constant() erforderlich.
Falls X eindimensional ist, Umwandlung wie folgt:
X = X.reshape(-1, 1)
Aufbau der Polynomialregression
import statsmodels.api as sm
y = df['Target']
X = df[['Feature']]
X_tilde = PolynomialFeatures(n).fit_transform(X)
model = sm.OLS(y, X_tilde).fit()
Für Vorhersagen muss neue Daten auf die gleiche Weise transformiert werden:
X_new_tilde = PolynomialFeatures(n).fit_transform(X_new)
y_pred = model.predict(X_new_tilde)
Vollständiges Beispiel
123456789101112131415161718import pandas as pd, numpy as np, matplotlib.pyplot as plt import statsmodels.api as sm from sklearn.preprocessing import PolynomialFeatures df = pd.read_csv(file_link) n = 2 X = df[['Feature']] y = df['Target'] X_tilde = PolynomialFeatures(n).fit_transform(X) model = sm.OLS(y, X_tilde).fit() X_new = np.linspace(-0.1, 1.5, 80).reshape(-1,1) X_new_tilde = PolynomialFeatures(n).fit_transform(X_new) y_pred = model.predict(X_new_tilde) plt.scatter(X, y) plt.plot(X_new, y_pred) plt.show()
Probiere verschiedene Werte für n aus, um zu sehen, wie sich die Kurve verändert und wie sich die Vorhersagen außerhalb des ursprünglichen Merkmalsbereichs verhalten—dies führt zum nächsten Kapitel.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 5.26
Erstellung der Polynomialregression
Swipe um das Menü anzuzeigen
Datei laden
Die Datei poly.csv wird geladen und überprüft:
1234import 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())
Anschließend wird die Beziehung visualisiert:
12345import matplotlib.pyplot as plt X = df['Feature'] y = df['Target'] plt.scatter(X, y) plt.show()
Eine Gerade passt schlecht, daher ist die Polynomregression besser geeignet.
Aufbau der X̃-Matrix
Um X̃ zu erstellen, könnten quadratische Merkmale manuell hinzugefügt werden:
df['Feature_squared'] = df['Feature'] ** 2
Für höhere Grade ist PolynomialFeatures jedoch einfacher. Es erfordert eine 2D-Struktur:
from sklearn.preprocessing import PolynomialFeatures
X = df[['Feature']]
poly = PolynomialFeatures(n)
X_tilde = poly.fit_transform(X)
Es wird außerdem die Konstante Spalte hinzugefügt, daher ist kein sm.add_constant() erforderlich.
Falls X eindimensional ist, Umwandlung wie folgt:
X = X.reshape(-1, 1)
Aufbau der Polynomialregression
import statsmodels.api as sm
y = df['Target']
X = df[['Feature']]
X_tilde = PolynomialFeatures(n).fit_transform(X)
model = sm.OLS(y, X_tilde).fit()
Für Vorhersagen muss neue Daten auf die gleiche Weise transformiert werden:
X_new_tilde = PolynomialFeatures(n).fit_transform(X_new)
y_pred = model.predict(X_new_tilde)
Vollständiges Beispiel
123456789101112131415161718import pandas as pd, numpy as np, matplotlib.pyplot as plt import statsmodels.api as sm from sklearn.preprocessing import PolynomialFeatures df = pd.read_csv(file_link) n = 2 X = df[['Feature']] y = df['Target'] X_tilde = PolynomialFeatures(n).fit_transform(X) model = sm.OLS(y, X_tilde).fit() X_new = np.linspace(-0.1, 1.5, 80).reshape(-1,1) X_new_tilde = PolynomialFeatures(n).fit_transform(X_new) y_pred = model.predict(X_new_tilde) plt.scatter(X, y) plt.plot(X_new, y_pred) plt.show()
Probiere verschiedene Werte für n aus, um zu sehen, wie sich die Kurve verändert und wie sich die Vorhersagen außerhalb des ursprünglichen Merkmalsbereichs verhalten—dies führt zum nächsten Kapitel.
Danke für Ihr Feedback!