Régression polynomiale
La régression polynomiale est une méthode statistique utilisée pour modéliser la relation entre une variable dépendante et une ou plusieurs variables indépendantes lorsque cette relation n’est pas linéaire. L’objectif est d’ajuster une équation polynomiale qui prédit la valeur de la variable cible à partir des variables explicatives.
Cette méthode repose sur l’idée que la relation entre les variables peut être représentée par une courbe (parabole, cubic, etc.) plutôt que par une droite. Les coefficients du polynôme sont estimés en minimisant la somme des carrés des différences entre les valeurs observées et les valeurs prédites (méthode des moindres carrés).
La régression polynomiale est utilisée en science des données, économie, ingénierie, physique et dans d’autres domaines pour modéliser des relations complexes, prédire des résultats et analyser l’impact des variables explicatives.
La qualité du modèle peut être évaluée à l’aide de métriques telles que le coefficient de détermination (R²) et l’erreur quadratique moyenne.
En résumé, la régression polynomiale permet de modéliser et d’interpréter des relations non linéaires dans les données.
Fonctions :
-
PolynomialFeatures()
La fonction PolynomialFeatures() génère de nouvelles caractéristiques sous forme de puissances de chaque caractéristique présente dans les données d'entrée. Elle permet de transformer les données de manière à introduire des termes polynomiaux, ce qui peut aider à ajuster des modèles plus complexes, comme les régressions polynomiales. Cela est particulièrement utile pour l’extension des modèles linéaires en un modèle non linéaire.
Importation :
from sklearn.preprocessing import PolynomialFeaturesAttributs :
Paramètre
Description
degreeLe degré du polynôme. Par défaut, il est égal à 2, ce qui signifie que seules les puissances jusqu'à 2 sont générées (termes linéaires et quadratiques).interaction_onlySi True, seules les caractéristiques d'interaction (sans termes quadratiques) sont générées. Par défaut, il est égal àFalse.include_biasSi True, la colonne de biais (constante 1) sera ajoutée à la matrice de sortie. Par défaut, il est égal àTrue.orderDéfinit l'ordre des fonctionnalités produites. Par défaut, il est égal à 'C', ce qui génère des fonctionnalités dans l'ordre C-contigu.'F'permet de les générer dans l'ordre Fortran-contigu.Exemple de code :
# Importation de la classe PolynomialFeatures from sklearn.preprocessing import PolynomialFeatures # Création d'un objet PolynomialFeatures pour générer des termes polynomiaux de degré 3 poly = PolynomialFeatures(degree=3) # Exemple de données d'entrée X = [[1, 2], [3, 4], [5, 6]] # Transformation des données avec des caractéristiques polynomiales X_poly = poly.fit_transform(X) # Affichage des caractéristiques polynomiales print(X_poly)
Explication du code :
from sklearn.preprocessing import PolynomialFeaturesimporte la classe PolynomialFeatures du modulesklearn.preprocessing, utilisée pour générer de nouvelles caractéristiques polynomiales à partir des données existantes.Création de l’objet PolynomialFeatures
poly = PolynomialFeatures(degree=3)crée un objetPolynomialFeaturesconfiguré pour générer toutes les combinaisons polynomiales possibles jusqu’au degré 3 (y compris interactions et puissances) à partir des variables d’entrée.Exemple de données d’entrée
X = [[1, 2], [3, 4], [5, 6]]définit un ensemble de données sous forme de liste de 3 échantillons, chacun contenant 2 caractéristiques (par exemplex₁etx₂).Transformation des données avec des caractéristiques polynomiales
X_poly = poly.fit_transform(X)applique la transformation polynomiale aux données d’entrée.
Cela génère une nouvelle matrice contenant : un biais (colonne de 1), les variables d’origine (x₁,x₂), leurs produits croisés et puissances :x₁²,x₁x₂,x₂²,x₁³,x₁²x₂,x₁x₂²,x₂³.
Cela permet de capturer des relations non linéaires entre les variables lors d’un apprentissage (ex : régression polynomiale).Affichage des caractéristiques polynomiales
print(X_poly)affiche la nouvelle matrice contenant toutes les caractéristiques générées.
Pour chaque ligne deX, on obtient un vecteur étendu avec tous les termes jusqu’au degré 3.