Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Costruzione della Regressione Polinomiale | Regressione Polinomiale
Quizzes & Challenges
Quizzes
Challenges
/
Regressione Lineare con Python

bookCostruzione della Regressione Polinomiale

Caricamento del file

Si carica poly.csv e si esegue un'ispezione:

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

Successivamente, visualizzazione della relazione:

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

Una retta si adatta male, quindi la regressione polinomiale è più appropriata.

Costruzione della matrice X̃

Per creare , è possibile aggiungere manualmente le feature al quadrato:

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

Ma per gradi superiori, PolynomialFeatures è più semplice. Richiede una struttura 2-D:

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

Aggiunge anche la colonna costante, quindi non è necessario sm.add_constant().

Se X è monodimensionale, convertirla:

X = X.reshape(-1, 1)

Costruzione della regressione polinomiale

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

La previsione richiede la trasformazione dei nuovi dati nello stesso modo:

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

Esempio completo

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 diversi valori di n per osservare come cambia la curva e come si comportano le previsioni al di fuori dell'intervallo originale della feature—questo introduce il prossimo capitolo.

question mark

Considera il seguente codice. In quale caso il codice verrà eseguito senza errori?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 5.26

bookCostruzione della Regressione Polinomiale

Scorri per mostrare il menu

Caricamento del file

Si carica poly.csv e si esegue un'ispezione:

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

Successivamente, visualizzazione della relazione:

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

Una retta si adatta male, quindi la regressione polinomiale è più appropriata.

Costruzione della matrice X̃

Per creare , è possibile aggiungere manualmente le feature al quadrato:

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

Ma per gradi superiori, PolynomialFeatures è più semplice. Richiede una struttura 2-D:

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

Aggiunge anche la colonna costante, quindi non è necessario sm.add_constant().

Se X è monodimensionale, convertirla:

X = X.reshape(-1, 1)

Costruzione della regressione polinomiale

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

La previsione richiede la trasformazione dei nuovi dati nello stesso modo:

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

Esempio completo

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 diversi valori di n per osservare come cambia la curva e come si comportano le previsioni al di fuori dell'intervallo originale della feature—questo introduce il prossimo capitolo.

question mark

Considera il seguente codice. In quale caso il codice verrà eseguito senza errori?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 3
some-alt