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
Quizzes & Challenges
Quizzes
Challenges
/
Lineær Regression med Python

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

Visualiser derefter relationen:

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

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 2-D struktur:

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

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

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

question mark

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

Select the correct answer

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

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

Visualiser derefter relationen:

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

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 2-D struktur:

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

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

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

question mark

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

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3
some-alt