Polynomiale Regressie Bouwen
Veeg om het menu te tonen
Bestand laden
We laden poly.csv en inspecteren het:
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())
Vervolgens de relatie visualiseren:
12345import matplotlib.pyplot as plt X = df['Feature'] y = df['Target'] plt.scatter(X, y) plt.show()
Een rechte lijn past slecht, daarom is polynomiale regressie geschikter.
X̃-matrix opbouwen
Voor het maken van X̃ kunnen kwadratische kenmerken handmatig worden toegevoegd:
df['Feature_squared'] = df['Feature'] ** 2
Maar voor hogere graden is PolynomialFeatures eenvoudiger. Dit vereist een 2D-structuur:
from sklearn.preprocessing import PolynomialFeatures
X = df[['Feature']]
poly = PolynomialFeatures(n)
X_tilde = poly.fit_transform(X)
Voegt ook de constante kolom toe, dus sm.add_constant() is niet nodig.
Als X 1-D is, omzetten:
X = X.reshape(-1, 1)
Opbouw van de polynomiale regressie
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()
Voorspellen vereist het op dezelfde manier transformeren van nieuwe data:
X_new_tilde = PolynomialFeatures(n).fit_transform(X_new)
y_pred = model.predict(X_new_tilde)
Volledig voorbeeld
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()
Probeer verschillende waarden voor n om te zien hoe de kromme verandert en hoe voorspellingen zich gedragen buiten het oorspronkelijke bereik van de feature—dit vormt de overgang naar het volgende hoofdstuk.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.