Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment effectuer une régression polynomiale à l’aide de Scikit-Learn



La régression polynomiale est une technique que nous pouvons utiliser lorsque la relation entre une variable prédictive et une variable de réponse est non linéaire.

Ce type de régression prend la forme :

Y = β 0 + β 1 X + β 2 X 2 + … + β h X h + ε

h est le « degré » du polynôme.

L’exemple étape par étape suivant montre comment effectuer une régression polynomiale en Python à l’aide de sklearn.

Étape 1 : Créer les données

Tout d’abord, créons deux tableaux NumPy pour contenir les valeurs d’un prédicteur et d’une variable de réponse :

import matplotlib.pyplot as plt
import numpy as np

#define predictor and response variables
x = np.array([2, 3, 4, 5, 6, 7, 7, 8, 9, 11, 12])
y = np.array([18, 16, 15, 17, 20, 23, 25, 28, 31, 30, 29])

#create scatterplot to visualize relationship between x and y
plt.scatter(x, y)

À partir du nuage de points, nous pouvons voir que la relation entre x et y n’est pas linéaire.

C’est donc une bonne idée d’adapter un modèle de régression polynomiale aux données pour capturer la relation non linéaire entre les deux variables.

Étape 2 : Ajuster le modèle de régression polynomiale

Le code suivant montre comment utiliser les fonctions de sklearn pour ajuster un modèle de régression polynomiale d’un degré de 3 à cet ensemble de données :

from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

#specify degree of 3 for polynomial regression model
#include bias=False means don't force y-intercept to equal zero
poly = PolynomialFeatures(degree=3, include_bias=False)

#reshape data to work properly with sklearn
poly_features = poly.fit_transform(x.reshape(-1, 1))

#fit polynomial regression model
poly_reg_model = LinearRegression()
poly_reg_model.fit(poly_features, y)

#display model coefficients
print(poly_reg_model.intercept_, poly_reg_model.coef_)

33.62640037532282 [-11.83877127   2.25592957  -0.10889554]

En utilisant les coefficients du modèle affichés sur la dernière ligne, nous pouvons écrire l’équation de régression polynomiale ajustée comme suit :

y = -0,109x 3 + 2,256x 2 – 11,839x + 33,626

Cette équation peut être utilisée pour trouver la valeur attendue de la variable de réponse en fonction d’une valeur donnée de la variable prédite.

Par exemple, si x vaut 4, la valeur attendue pour la variable de réponse, y, serait 15,39 :

y = -0,109(4) 3 + 2,256(4) 2 – 11,839(4) + 33,626= 15,39

Remarque : Pour ajuster un modèle de régression polynomiale avec un degré différent, modifiez simplement la valeur de l’argument degré dans la fonction PolynomialFeatures() .

Étape 3 : Visualisez le modèle de régression polynomiale

Enfin, nous pouvons créer un tracé simple pour visualiser le modèle de régression polynomiale ajusté sur les points de données d’origine :

#use model to make predictions on response variable
y_predicted = poly_reg_model.predict(poly_features)

#create scatterplot of x vs. y
plt.scatter(x, y)

#add line to show fitted polynomial regression model
plt.plot(x, y_predicted, color='purple')

D’après le graphique, nous pouvons voir que le modèle de régression polynomiale semble bien s’adapter aux données sans surajustement .

Remarque : Vous pouvez trouver la documentation complète de la fonction sklearn PolynomialFeatures() ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes à l’aide de sklearn :

Comment extraire les coefficients de régression de sklearn
Comment calculer la précision équilibrée à l’aide de sklearn
Comment interpréter le rapport de classification dans Sklearn

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *