Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Bygga Polynomregression | Polynomregression
Practice
Projects
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

Suggested prompts:

What does the `PolynomialFeatures` class do in this context?

How do I choose the best degree `n` for my polynomial regression?

Can you explain why a straight line fits poorly in this example?

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