Erstellung der Polynomialen Regression
Swipe um das Menü anzuzeigen
Datei laden
Wir laden poly.csv und überprüfen sie:
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 Visualisierung der Beziehung:
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önnen 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)
Fügt außerdem die konstante Spalte hinzu, daher ist kein sm.add_constant() erforderlich.
Falls X eindimensional ist, Umwandlung wie folgt:
X = X.reshape(-1, 1)
Aufbau der Polynomialen Regression
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 müssen 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()
Verschiedene Werte für n ausprobieren, 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
Erstellung der Polynomialen Regression
Datei laden
Wir laden poly.csv und überprüfen sie:
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 Visualisierung der Beziehung:
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önnen 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)
Fügt außerdem die konstante Spalte hinzu, daher ist kein sm.add_constant() erforderlich.
Falls X eindimensional ist, Umwandlung wie folgt:
X = X.reshape(-1, 1)
Aufbau der Polynomialen Regression
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 müssen 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()
Verschiedene Werte für n ausprobieren, 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!