Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Bygga Polynomregression | Polynomregression
Quizzes & Challenges
Quizzes
Challenges
/
Linjär Regression med Python

bookBygga Polynomregression

Laddar fil

Vi laddar poly.csv och inspekterar 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

Visualisera sedan relationen:

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

En rät linje passar dåligt, så polynomregression är mer lämplig.

Bygga X̃-matrisen

För att skapa kan kvadrerade funktioner läggas till manuellt:

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

Men för högre grader är PolynomialFeatures enklare. Den kräver en tvådimensionell struktur:

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

Den lägger också till konstantkolumnen, så sm.add_constant() behövs inte.

Om X är 1-D, konvertera det:

X = X.reshape(-1, 1)

Bygga polynomregression

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

För att förutsäga krävs att ny data transformeras på samma sätt:

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

Fullständigt exempel

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

Prova olika värden på n för att se hur kurvan förändras och hur prediktionerna beter sig utanför det ursprungliga funktionsintervallet—detta leder vidare till nästa kapitel.

question mark

Tänk på följande kod. I vilket fall kommer koden att köras utan fel?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 5.26

bookBygga Polynomregression

Svep för att visa menyn

Laddar fil

Vi laddar poly.csv och inspekterar 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

Visualisera sedan relationen:

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

En rät linje passar dåligt, så polynomregression är mer lämplig.

Bygga X̃-matrisen

För att skapa kan kvadrerade funktioner läggas till manuellt:

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

Men för högre grader är PolynomialFeatures enklare. Den kräver en tvådimensionell struktur:

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

Den lägger också till konstantkolumnen, så sm.add_constant() behövs inte.

Om X är 1-D, konvertera det:

X = X.reshape(-1, 1)

Bygga polynomregression

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

För att förutsäga krävs att ny data transformeras på samma sätt:

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

Fullständigt exempel

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

Prova olika värden på n för att se hur kurvan förändras och hur prediktionerna beter sig utanför det ursprungliga funktionsintervallet—detta leder vidare till nästa kapitel.

question mark

Tänk på följande kod. I vilket fall kommer koden att köras utan fel?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3
some-alt