Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Opbygning af Polynomiel Regression | Polynomiel Regression
Lineær Regression med Python

Opbygning af Polynomiel Regression

Stryg for at vise menuen

Indlæsning af fil

Vi indlæser poly.csv og inspicerer den:

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

Visualisering af sammenhængen:

12345
import matplotlib.pyplot as plt X = df['Feature'] y = df['Target'] plt.scatter(X, y) plt.show()

En ret linje passer dårligt, så polynomiel regression er mere velegnet.

Opbygning af X̃-matrix

For at oprette kan kvadrerede features tilføjes manuelt:

df['Feature_squared'] = df['Feature'] ** 2

Men for højere grader er PolynomialFeatures nemmere. Det kræver en 2D-struktur:

from sklearn.preprocessing import PolynomialFeatures
X = df[['Feature']]
poly = PolynomialFeatures(n)
X_tilde = poly.fit_transform(X)
PolynomialFeaturesClass

Den tilføjer også konstantkolonnen, så sm.add_constant() er ikke nødvendig.

Hvis X er 1-D, omdan den:

X = X.reshape(-1, 1)

Opbygning af polynomiel 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()

Forudsigelse kræver, at nye data transformeres på samme måde:

X_new_tilde = PolynomialFeatures(n).fit_transform(X_new)
y_pred = model.predict(X_new_tilde)

Fuldt eksempel

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

Prøv forskellige værdier af n for at se, hvordan kurven ændrer sig, og hvordan forudsigelser opfører sig uden for det oprindelige feature-interval—dette leder videre til næste kapitel.

n456f4
question mark

Overvej følgende kode. I hvilket tilfælde vil koden køre uden fejl?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Opbygning af Polynomiel Regression

Indlæsning af fil

Vi indlæser poly.csv og inspicerer den:

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

Visualisering af sammenhængen:

12345
import matplotlib.pyplot as plt X = df['Feature'] y = df['Target'] plt.scatter(X, y) plt.show()

En ret linje passer dårligt, så polynomiel regression er mere velegnet.

Opbygning af X̃-matrix

For at oprette kan kvadrerede features tilføjes manuelt:

df['Feature_squared'] = df['Feature'] ** 2

Men for højere grader er PolynomialFeatures nemmere. Det kræver en 2D-struktur:

from sklearn.preprocessing import PolynomialFeatures
X = df[['Feature']]
poly = PolynomialFeatures(n)
X_tilde = poly.fit_transform(X)
PolynomialFeaturesClass

Den tilføjer også konstantkolonnen, så sm.add_constant() er ikke nødvendig.

Hvis X er 1-D, omdan den:

X = X.reshape(-1, 1)

Opbygning af polynomiel 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()

Forudsigelse kræver, at nye data transformeres på samme måde:

X_new_tilde = PolynomialFeatures(n).fit_transform(X_new)
y_pred = model.predict(X_new_tilde)

Fuldt eksempel

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

Prøv forskellige værdier af n for at se, hvordan kurven ændrer sig, og hvordan forudsigelser opfører sig uden for det oprindelige feature-interval—dette leder videre til næste kapitel.

n456f4
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3
some-alt