Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Bygge Polynomisk Regresjon | Polynomisk Regresjon
Quizzes & Challenges
Quizzes
Challenges
/
Lineær Regresjon med Python

bookBygge Polynomisk Regresjon

Laster inn fil

Vi laster inn poly.csv og inspiserer 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

Deretter visualiseres sammenhengen:

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

En rett linje passer dårlig, derfor er polynomisk regresjon mer egnet.

Bygging av X̃-matrisen

For å lage , kan vi legge til kvadrerte trekk manuelt:

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

Men for høyere grader er PolynomialFeatures enklere. Den krever en 2D-struktur:

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

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

Hvis X er 1-D, konverter den:

X = X.reshape(-1, 1)

Bygging av polynomregresjon

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

Prediksjon krever at nye data transformeres på samme måte:

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

Fullstendig 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 ulike verdier for n for å se hvordan kurven endrer seg og hvordan prediksjonene oppfører seg utenfor det opprinnelige området for funksjonen—dette leder videre til neste kapittel.

question mark

Vurder følgende kode. I hvilket tilfelle vil koden kjøre uten feil?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 5.26

bookBygge Polynomisk Regresjon

Sveip for å vise menyen

Laster inn fil

Vi laster inn poly.csv og inspiserer 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

Deretter visualiseres sammenhengen:

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

En rett linje passer dårlig, derfor er polynomisk regresjon mer egnet.

Bygging av X̃-matrisen

For å lage , kan vi legge til kvadrerte trekk manuelt:

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

Men for høyere grader er PolynomialFeatures enklere. Den krever en 2D-struktur:

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

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

Hvis X er 1-D, konverter den:

X = X.reshape(-1, 1)

Bygging av polynomregresjon

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

Prediksjon krever at nye data transformeres på samme måte:

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

Fullstendig 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 ulike verdier for n for å se hvordan kurven endrer seg og hvordan prediksjonene oppfører seg utenfor det opprinnelige området for funksjonen—dette leder videre til neste kapittel.

question mark

Vurder følgende kode. I hvilket tilfelle vil koden kjøre uten feil?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3
some-alt