Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Polynomiale Regressie Bouwen | Polynomiale Regressie
Lineaire Regressie met Python

Polynomiale Regressie Bouwen

Veeg om het menu te tonen

Bestand laden

We laden poly.csv en inspecteren het:

1234
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())

Vervolgens de relatie visualiseren:

12345
import 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 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)
PolynomialFeaturesClass

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

123456789101112131415161718
import 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.

n456f4
question mark

Beschouw de volgende code. In welk geval zal de code zonder fouten worden uitgevoerd?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 3. Hoofdstuk 3
some-alt