Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Construction de la Régression Polynomiale | Régression Polynomiale
Régression Linéaire Avec Python

bookConstruction de la Régression Polynomiale

Chargement du fichier

Nous chargeons poly.csv et l'inspectons :

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

Ensuite, visualiser la relation :

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

Une droite ajuste mal les données, donc la régression polynomiale est plus appropriée.

Construction de la matrice X̃

Pour créer , il est possible d’ajouter manuellement les caractéristiques au carré :

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

Mais pour des degrés plus élevés, PolynomialFeatures est plus pratique. Cela nécessite une structure à deux dimensions :

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

Il ajoute également la colonne constante, donc aucune utilisation de sm.add_constant() n'est nécessaire.

Si X est un tableau 1-D, le convertir :

X = X.reshape(-1, 1)

Construction de la régression polynomiale

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 prédiction nécessite de transformer les nouvelles données de la même manière :

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

Exemple complet

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

Essayez différentes valeurs de n pour observer comment la courbe évolue et comment les prédictions se comportent en dehors de l’intervalle initial de la variable explicative — cela introduit le chapitre suivant.

question mark

Considérez le code suivant. Dans quel cas ce code s’exécutera-t-il sans erreur ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 3

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

bookConstruction de la Régression Polynomiale

Glissez pour afficher le menu

Chargement du fichier

Nous chargeons poly.csv et l'inspectons :

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

Ensuite, visualiser la relation :

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

Une droite ajuste mal les données, donc la régression polynomiale est plus appropriée.

Construction de la matrice X̃

Pour créer , il est possible d’ajouter manuellement les caractéristiques au carré :

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

Mais pour des degrés plus élevés, PolynomialFeatures est plus pratique. Cela nécessite une structure à deux dimensions :

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

Il ajoute également la colonne constante, donc aucune utilisation de sm.add_constant() n'est nécessaire.

Si X est un tableau 1-D, le convertir :

X = X.reshape(-1, 1)

Construction de la régression polynomiale

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 prédiction nécessite de transformer les nouvelles données de la même manière :

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

Exemple complet

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

Essayez différentes valeurs de n pour observer comment la courbe évolue et comment les prédictions se comportent en dehors de l’intervalle initial de la variable explicative — cela introduit le chapitre suivant.

question mark

Considérez le code suivant. Dans quel cas ce code s’exécutera-t-il sans erreur ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 3
some-alt