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
course content

Contenu du cours

Régression Linéaire Avec Python

Régression Linéaire Avec Python

1. Régression Linéaire Simple
2. Régression Linéaire Multiple
3. Régression Polynomiale
4. Choisir le Meilleur Modèle

book
Construction de la Régression Polynomiale

Chargement du fichier

Pour ce chapitre, nous avons un fichier nommé poly.csv. Chargeons le fichier et examinons le contenu.

123456
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(5))
copy

Nous avons donc ici une caractéristique et la cible. Construisons un nuage de points.

123456789
import pandas as pd import matplotlib.pyplot as plt 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) X = df['Feature'] y = df['Target'] plt.scatter(X,y) plt.show()
copy

Il est difficile d'imaginer qu'une ligne droite s'adapte bien à ces données. Construisons donc une régression polynomiale !

Construction de la matrice X̃

Nous allons à nouveau utiliser la classe OLS. Cependant, nous devons créer une matrice . Nous le faisons manuellement en ajoutant une colonne Feature au carré au DataFrame comme ceci :

Mais si nous voulons construire une régression polynomiale de haut degré, cela nécessitera d'ajouter beaucoup de colonnes comme celle-ci. Heureusement, Scikit-Learn fournit un moyen de le faire de manière moins pénible en utilisant la classe PolynomialFeatures.

Remarque

La méthode fit_transform(X) attend que X soit soit un tableau 2D, soit un DataFrame pandas. Si votre X est un tableau numpy 1D, la méthode reshape(-1,1) le transformera en un tableau 2D avec le même contenu :

Si votre X est une colonne d'un DataFrame, vous pouvez utiliser X = df[['col1']] pour obtenir un DataFrame au lieu d'une Series pandas, qui n'est pas adaptée pour fit_transform()

X = df['Feature'] # X est une Series pandas X = df[['Feature']] # X est un DataFrame pandas

Donc, pour construire un pour la Régression Polynomiale de degré n, nous utiliserions :

Remarque

La classe PolynomialFeatures ajoute également une colonne avec des 1, donc vous n'avez pas besoin d'utiliser sm.add_constant().

Construire la Régression Polynomiale et faire les prédictions

Sachant comment obtenir un , nous sommes prêts à construire la Régression Polynomiale de la même manière que les modèles précédents :

Pour prédire de nouvelles valeurs, X_new doit également être transformé en utilisant PolynomialFeatures.

L'exemple exécutable suivant montre tout le processus de construction de la régression polynomiale. X_new ici est un tableau 1D de points entre -0.1 et 1.5. Ils sont nécessaires pour la visualisation. Et comme c'est un tableau 1D, nous devrions appliquer la méthode reshape(-1,1) avant de l'utiliser dans la classe PolynomialFeatures.

123456789101112131415161718
import pandas as pd import numpy as np import matplotlib.pyplot as plt import statsmodels.api as sm from sklearn.preprocessing import PolynomialFeatures # Import PolynomialFeatures class 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) n = 2 # A degree of the polynomial regression X = df[['Feature']] # Assign X as a DataFrame y = df['Target'] # Assign y X_tilde = PolynomialFeatures(n).fit_transform(X) # Get X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train the model X_new = np.linspace(-0.1, 1.5, 80).reshape(-1,1) # 2-d array of new feature values X_new_tilde = PolynomialFeatures(n).fit_transform(X_new) # Transform X_new for predict() method y_pred = regression_model.predict(X_new_tilde) plt.scatter(X, y) # Build a scatterplot plt.plot(X_new, y_pred) # Build a Polynomial Regression graph
copy

N'hésitez pas à jouer avec les valeurs de n à la huitième ligne. Vous verrez comment le graphique change en fonction du degré de la régression polynomiale. Si vous faites attention, vous remarquerez peut-être à quel point les prédictions sont différentes pour les valeurs de caractéristiques inférieures à 0 ou supérieures à 1.4. C'est le sujet du prochain chapitre.

Considérez le code suivant. Dans quel cas le code s'exécutera-t-il sans erreurs ?

Considérez le code suivant. Dans quel cas le code s'exécutera-t-il sans erreurs ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 3
We're sorry to hear that something went wrong. What happened?
some-alt