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
Quizzes & Challenges
Quizzes
Challenges
/
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

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?

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