Accéder au contenu principal

Régression polynomiale : des droites aux courbes

Découvrez comment la régression polynomiale modélise les relations non linéaires et améliore la précision des prédictions sur des données réelles.
Actualisé 4 mai 2026  · 12 min lire

Quand vos données forment une courbe, utiliser une droite pour estimer de nouveaux points n’a aucun sens. Vous obtiendrez un modèle qui rate le motif, présente de grands résidus et délivre de faibles performances prédictives. Les données réelles sont rarement linéaires, que vous modélisiez l’effet d’une dose de médicament sur une réponse, l’impact de la température sur la contrainte d’un matériau, ou l’évolution des prix d’actifs dans le temps.

La régression polynomiale corrige cela en étendant la régression linéaire pour ajuster des courbes plutôt que des droites. Il suffit d’ajouter quelques termes de degré supérieur - , - et votre modèle peut suivre la forme réelle de vos données.

Dans cet article, je présente ce qu’est la régression polynomiale, les bases mathématiques, comment l’implémenter en Python, et comment éviter le piège dans lequel beaucoup tombent : le surapprentissage.

Si vous découvrez l’apprentissage automatique, commencez par notre tutoriel Essentials of Linear Regression in Python.

Qu’est-ce que la régression polynomiale ?

La régression polynomiale est l’algorithme à privilégier quand une droite ne suffit pas à décrire vos données.

La régression linéaire modélise la relation entre variables par une droite. Cela fonctionne si la relation est effectivement linéaire — mais la plupart des données réelles ne le sont pas. Pensez à la distance de freinage d’une voiture selon la vitesse, ou au taux de croissance d’une plante selon l’engrais. Ces relations sont courbes. Une droite ne les ajustera pas correctement, quoi que vous fassiez.

La régression polynomiale étend la régression linéaire en ajoutant des termes de degré supérieur à l’équation. Au lieu d’ajuster y = b0 + b1x, vous ajustez par exemple y = b0 + b1x + b2x² + b3x³. Le degré du polynôme — ce n dans « degré n » — contrôle le nombre d’inflexions possibles de la courbe.

En bref, voici la différence essentielle entre les deux :

  • Régression linéaire : ajuste une droite. Un coefficient par variable, un seul degré de liberté dans la courbe.

  • Régression polynomiale : ajuste une courbe. Chaque terme supplémentaire (, , …) apporte plus de flexibilité pour suivre la forme des données.

Régression linéaire versus polynomiale

Régression linéaire versus polynomiale

Sous le capot, la régression polynomiale reste un modèle linéaire. « Linéaire » fait ici référence à la manière dont le modèle traite ses coefficients, pas à la forme de la courbe. Vous ajoutez de nouvelles variables (, ) puis ajustez une équation linéaire dessus.

Alors, quand l’utiliser concrètement ?

Choisissez la régression polynomiale quand le graphique des résidus d’un modèle linéaire montre un motif — signe que la relation n’est pas linéaire. Elle est aussi indiquée lorsque votre expertise métier suggère une relation courbe, comme en physique, biologie ou économie.

La contrepartie, c’est que les polynômes de haut degré peuvent devenir instables. Un polynôme de degré 2 ou 3 suffit pour la plupart des cas, au-delà vous risquez surtout d’ajuster le bruit plutôt que le signal.

Pourquoi utiliser la régression polynomiale ?

La plupart des relations réelles entre variables ne sont pas linéaires.

Une droite peut s’en approcher, mais « presque » ne suffit pas quand vous prédisez des phénomènes sensibles. Si la relation se courbe, un modèle linéaire ratera systématiquement cette inflexion.

La régression polynomiale fait mieux en autorisant la courbure. Plutôt que de forcer une droite à travers vos données, vous ajustez une courbe qui suit la forme de la relation.

Voici quelques domaines où elle change vraiment la donne :

  • Biologie et médecine : les relations dose-réponse sont rarement linéaires. Une faible dose a peu d’effet, une dose moyenne fonctionne bien, une dose élevée entraîne des effets indésirables. Cette courbe en S exige un modèle polynomial pour être capturée
  • Ingénierie : les relations contrainte–déformation, la traînée aérodynamique ou la dilatation thermique suivent des comportements non linéaires bien modélisés par des polynômes
  • Finance : les rendements d’actifs, la tarification d’options et les courbes de demande montrent souvent des effets décroissants ou croissants qu’une droite ne peut représenter
  • Pipelines de machine learning : les variables polynomiales sont un moyen rapide d’ajouter de la non-linéarité à un modèle linéaire sans basculer vers un algorithme plus complexe

Le point commun : l’effet de l’entrée sur la sortie varie selon les valeurs de x. La régression linéaire suppose un effet constant. La régression polynomiale non.

Cela dit, la régression polynomiale n’est pas une baguette magique.

Elle fonctionne mieux lorsque votre connaissance métier suggère une relation courbe, ou quand votre graphique de résidus montre clairement un motif qu’une droite ne peut corriger. Utilisez-la pour répondre à un besoin précis — pas juste parce que votre n’est pas assez élevé.

Comprendre les bases mathématiques de la régression polynomiale

Connaître les bases mathématiques vous aidera à mieux appréhender la régression polynomiale.

Termes polynomiaux

En régression linéaire, votre modèle ressemble à ceci :

Formule de la régression linéaire

Formule de la régression linéaire

Une variable d’entrée, un coefficient, une droite. La régression polynomiale ajoute des termes de degré supérieur :

Formule de la régression polynomiale

Formule de la régression polynomiale

Chaque nouveau terme — , , etc. — offre un « pli » supplémentaire à la courbe. Un polynôme de degré 2 ajuste une simple courbure. Un degré 3 peut changer de direction une fois. Le degré n contrôle la flexibilité du modèle.

L’algorithme sous-jacent reste le même. Vous ajoutez simplement des variables dérivées. est traité comme une variable d’entrée à part entière, tout comme x. Le modèle ajuste toujours une équation linéaire — mais sur des variables transformées.

Estimation aux moindres carrés

L’ajustement d’un modèle polynomial fonctionne comme en régression linéaire — via la méthode des moindres carrés.

L’idée consiste à trouver les coefficients qui minimisent la somme des résidus au carré :

Formule SSR

Formule SSR

Chaque écart au carré est un résidu — l’écart entre la prédiction du modèle et l’observation. Le carré empêche les erreurs positives et négatives de s’annuler, et pénalise davantage les grandes erreurs.

En pratique, votre bibliothèque s’en charge. Mais savoir que l’objectif est la minimisation des moindres carrés explique pourquoi les valeurs aberrantes pénalisent tant les modèles polynomiaux : un seul grand résidu est mis au carré et attire les coefficients dans sa direction.

Interpréter les coefficients

En régression linéaire, b1 s’interprète simplement : pour une augmentation d’une unité de x, y varie de b1.

En régression polynomiale, c’est plus subtil. Avec b_1x + b_2x^2, l’effet de x sur y dépend de la valeur courante de x — on ne peut pas lire b2 isolément et conclure. La pente de la courbe varie en permanence, ce que l’on voit en dérivant par rapport à x :

Dérivée par rapport à x

Dérivée par rapport à x

La pente elle-même est une fonction de x. L’impact d’un changement d’une unité de x diffère donc en tout point de la courbe.

C’est pourquoi il ne faut pas interpréter les coefficients individuellement dans un modèle polynomial. Regardez plutôt la courbe dans son ensemble. Tracez vos prédictions face aux données.

Applications de la régression polynomiale en data science

La régression polynomiale est omniprésente car les relations courbes abondent dans les données réelles.

Finance

Les séries financières évoluent rarement en ligne droite.

Les prix d’actifs, la croissance du chiffre d’affaires et les courbes de demande accélèrent, ralentissent ou s’inversent selon le contexte de marché. Un modèle linéaire suppose un taux de variation constant, ce qui est presque toujours faux. La régression polynomiale permet de modéliser ces bascules — par exemple, comment la demande des consommateurs baisse d’abord lentement, puis fortement au-delà d’un certain prix.

Elle est aussi utile pour analyser les tendances dans le temps. Pour ajuster une courbe à des prix historiques ou modéliser l’évolution d’un indicateur au fil des phases d’un cycle économique, un polynôme de degré 2 ou 3 donne souvent une meilleure estimation qu’une droite.

Ingénierie

Les processus physiques illustrent parfaitement les relations non linéaires.

Contrainte et déformation des matériaux, dynamique des fluides, dilatation thermique et traînée aérodynamique suivent des courbes, pas des droites. Beaucoup d’équations en physique sont naturellement polynomiales. La régression polynomiale offre un ajustement fondé sur les données lorsque vous avez des mesures mais pas d’équation analytique simple.

Un bon exemple est la force de traînée, qui croît avec le carré de la vitesse. Un modèle linéaire sous-estimera la traînée à grande vitesse ; un polynôme de degré 2 reproduira correctement la relation.

Machine learning

En apprentissage automatique, la régression polynomiale est souvent utilisée comme technique d’ingénierie des variables plutôt que comme modèle autonome.

En ajoutant des termes polynomiaux — , , termes d’interaction — à votre jeu de variables, vous donnez à un modèle linéaire la capacité d’ajuster des motifs non linéaires sans passer à un algorithme plus complexe. C’est une étape classique quand un modèle linéaire sous-ajuste et que vous souhaitez gagner en flexibilité avant d’opter pour un arbre de décision ou un réseau de neurones.

C’est aussi un bon modèle de référence.

Avant d’entraîner un modèle plus complexe, ajuster une régression polynomiale indique quelle part de variance une simple courbe explique. Si un degré 3 vous emmène déjà loin, inutile d’aller vers plus complexe.

Comment choisir le bon degré pour la régression polynomiale

Le choix du degré est l’une des décisions les plus importantes. Se tromper dans un sens ou dans l’autre dégradera la précision.

Heureusement, quelques lignes de Python suffisent pour faire le tri.

Surapprentissage vs sous-apprentissage

Le sous-apprentissage survient quand le degré est trop faible. Un polynôme de degré 1 sur des données courbes manquera le motif — biais élevé, mauvaises prédictions, et de piètres performances sur apprentissage comme sur test.

Le surapprentissage est l’inverse, plus pernicieux car il semble bon au départ. Un polynôme de haut degré peut traverser presque tous les points d’apprentissage avec une erreur quasi nulle. Mais il mémorise le bruit et s’effondre sur de nouvelles données.

On le voit en comparant l’erreur d’apprentissage et de test selon le degré :

import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split

np.random.seed(42)

# Generate sample data
x = np.linspace(-3, 3, 80).reshape(-1, 1)
y = 0.6 * x.ravel()**2 - x.ravel() + np.random.normal(0, 0.6, 80)

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)

for deg in [1, 2, 12]:
    poly = PolynomialFeatures(deg)
    model = LinearRegression()
    model.fit(poly.fit_transform(x_train), y_train)

    train_err = mean_squared_error(y_train, model.predict(poly.transform(x_train)))
    test_err  = mean_squared_error(y_test,  model.predict(poly.transform(x_test)))

    print(f"Degree {deg:>2} | Train MSE: {train_err:.4f} | Test MSE: {test_err:.4f}")

MSE selon différents degrés

MSE selon différents degrés

Ou, visuellement :

Ajustement des données avec différents degrés polynomiaux

Ajustement des données avec différents degrés polynomiaux

Le degré 1 présente une forte erreur sur les deux ensembles — c’est du sous-apprentissage. Le degré 2 est équilibré. Le degré 12 affiche une erreur d’apprentissage plus faible mais une erreur de test bien plus élevée — c’est du surapprentissage.

Validation croisée

La bonne méthode pour identifier le meilleur degré est la validation croisée — en particulier la validation croisée k-fold.

L’idée est de scinder vos données en k sous-ensembles, d’entraîner sur k-1 et de tester sur celui mis de côté, puis de répéter jusqu’à ce que chaque sous-ensemble ait servi de test. Enfin, on moyenne l’erreur sur tous les folds, on répète pour chaque degré candidat et on retient celui avec l’erreur moyenne la plus faible.

L’implémentation est plus simple que l’explication :

import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score
from sklearn.pipeline import make_pipeline
import matplotlib.pyplot as plt

np.random.seed(42)

# Generate sample data
x = np.linspace(-3, 3, 80).reshape(-1, 1)
y = 0.6 * x.ravel()**2 - x.ravel() + np.random.normal(0, 0.6, 80)

# Test degrees 1 through 10
degrees = range(1, 11)
mean_errors = []

for deg in degrees:
    model = make_pipeline(PolynomialFeatures(deg), LinearRegression())
    scores = cross_val_score(model, x, y, cv=5, scoring="neg_mean_squared_error")
    mean_errors.append(-scores.mean())
    print(f"Degree {deg:>2} | Mean error: {-scores.mean():.4f}")

best_degree = np.argmin(mean_errors) + 1

Comparaison des erreurs selon le degré

Comparaison des erreurs selon le degré

Ou, de façon visuelle :

Comparaison des erreurs en validation croisée

Comparaison des erreurs en validation croisée

L’erreur de CV baisse à mesure que vous ajoutez des termes utiles, puis remonte quand le modèle commence à surapprendre.

Quand deux degrés donnent des erreurs similaires, choisissez le plus faible. Un modèle plus simple offrant les mêmes performances est toujours préférable.

Points d’attention et limites

Plusieurs écueils peuvent conduire à de mauvaises conclusions avec la régression polynomiale. Passons-les en revue.

Sensibilité aux valeurs aberrantes

Les valeurs aberrantes affectent davantage la régression polynomiale que la linéaire.

Les moindres carrés élèvent chaque résidu au carré avant de les sommer. Un point très éloigné de la tendance contribue énormément à l’erreur totale, et le modèle va courber sa trajectoire pour réduire cette erreur — au risque de détériorer l’ajustement ailleurs.

Cet effet s’amplifie avec le degré. Un polynôme de haut degré a assez de flexibilité pour « poursuivre » une valeur aberrante, tirant la courbe loin du gros des données pour coller à un seul mauvais point.

Pour y remédier, nettoyez vos données avant l’ajustement. Visualisez, identifiez les valeurs aberrantes, et décidez si elles traduisent un signal réel ou du bruit. Si c’est du bruit — erreurs de mesure, saisies erronées, enregistrements corrompus — supprimez-les. Si elles sont réelles, envisagez une méthode plus robuste comme RANSAC ou la régression de Huber.

Surapprentissage

Chaque terme polynomial ajouté accroît la flexibilité. À un moment, cela cesse d’aider et le modèle ajuste le bruit plutôt que le motif réel. Résultat : une courbe performante sur l’apprentissage qui s’effondre en production.

Le piège, c’est que le surapprentissage est invisible si vous ne regardez que l’erreur d’apprentissage. Un polynôme de degré 10 aura presque toujours une MSE d’apprentissage plus faible qu’un degré 2. Cela n’en fait pas un meilleur modèle.

Voici la bonne approche :

  • Commencez bas : essayez les degrés 2 ou 3 avant d’augmenter. La plupart des courbes réelles n’exigent pas davantage
  • Évaluez toujours sur un jeu de test : l’erreur d’apprentissage seule ne dit rien de la généralisation.
  • Validation croisée : utilisez-la pour trouver le degré où l’erreur de test cesse de s’améliorer.
  • Surveillez la courbe : si votre polynôme se comporte de façon erratique hors de la plage d’apprentissage, c’est un signe de surapprentissage.

La régression polynomiale fonctionne au mieux quand vous avez de bonnes raisons d’attendre une relation courbe, avec un degré maintenu le plus bas possible.

Alternatives à la régression polynomiale

La régression polynomiale n’est pas toujours l’outil adéquat — certaines alternatives conviendront mieux, sans jeu de mots.

Splines

Les splines résolvent le problème d’instabilité globale.

Avec un polynôme de degré 10, chaque coefficient est influencé par chaque point de donnée. Une modification locale affecte la courbe partout. Les splines contournent cela en segmentant les données et en ajustant un polynôme de faible degré sur chaque segment. Les segments sont reliés en des nœuds, avec des contraintes assurant la continuité et la douceur de la courbe.

On obtient une courbe flexible où nécessaire et stable ailleurs.

En Python, scipy et scikit-learn proposent de bonnes implémentations :

from scipy.interpolate import UnivariateSpline

spline = UnivariateSpline(x, y, k=3)
y_pred = spline(x_new)

Spline versus polynôme de haut degré

Spline versus polynôme de haut degré

En résumé, optez pour les splines lorsque vos données présentent des comportements différents selon les zones, ou lorsqu’un seul polynôme ne parvient à capturer la forme qu’en montant trop en degré.

Support Vector Regression

Le Support Vector Regression (SVR) adopte une autre approche.

Il ne cherche pas à minimiser l’erreur quadratique sur tous les points, mais à trouver une fonction qui reste dans une marge d’erreur définie pour un maximum de points, en ignorant ceux qui tombent à l’intérieur de cette marge. Il est donc moins sensible aux valeurs aberrantes que la régression polynomiale.

Le lien avec la régression polynomiale vient du kernel trick. Un SVR avec noyau polynomial peut modéliser des relations non linéaires similaires — avec une meilleure généralisation et un contrôle plus fin via la régularisation.

from sklearn.svm import SVR

model = SVR(kernel="poly", degree=3, C=1.0, epsilon=0.1)
model.fit(x_train, y_train)

SVR versus polynôme de haut degré

SVR versus polynôme de haut degré

Le SVR est un bon choix quand vos données comportent des valeurs aberrantes impossibles à retirer, quand vous avez besoin de mieux contrôler le compromis biais–variance, ou quand la régression polynomiale surapprend malgré la validation croisée.

Conclusion

Dans cet article, j’ai montré comment étendre la régression linéaire pour ajuster des courbes, comment l’estimation aux moindres carrés trouve les meilleurs coefficients, et pourquoi l’interprétation isolée de ces coefficients est limitée.

Le choix du degré est capital. Trop bas : sous-apprentissage. Trop haut : surapprentissage. La validation croisée vous aide à trouver le juste milieu. Et si la régression polynomiale n’est pas adaptée, les splines et le SVR constituent d’excellentes alternatives.

La meilleure façon d’acquérir de l’intuition est de l’appliquer à vos propres données. Choisissez un jeu où vous soupçonnez une relation non linéaire, ajustez d’abord un modèle linéaire, tracez les résidus, puis voyez ce que la régression polynomiale change. Consultez notre guide Non-Linear Models and Insights Using R pour voir ce pipeline en pratique.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Scientifique de données senior basé en Croatie. Rédacteur technique de premier plan avec plus de 700 articles publiés, générant plus de 10 millions de vues. Auteur du livre Machine Learning Automation with TPOT.

FAQ sur la régression polynomiale

Qu’est-ce que la régression polynomiale et quand l’utiliser ?

La régression polynomiale étend la régression linéaire pour ajuster une ligne courbe plutôt qu’une droite. Vous l’utilisez lorsque la relation entre vos variables d’entrée et de sortie n’est pas linéaire — par exemple, quand le graphique des résidus d’un modèle linéaire révèle un motif. C’est une bonne étape préalable avant d’envisager des modèles plus complexes comme les arbres de décision ou les réseaux de neurones.

En quoi la régression polynomiale diffère-t-elle de la régression linéaire ?

La régression linéaire ajuste une droite en modélisant la relation comme y = b0 + b1x. La régression polynomiale ajoute des termes de degré supérieur comme et , offrant assez de flexibilité pour suivre les courbes dans les données. Les deux utilisent la même estimation aux moindres carrés — la régression polynomiale traite simplement ces termes supplémentaires comme des variables d’entrée additionnelles.

Quels sont les plus grands risques liés à la régression polynomiale ?

Les deux principaux risques sont le surapprentissage et la sensibilité aux valeurs aberrantes. Un polynôme de haut degré peut mémoriser le bruit de vos données d’apprentissage et mal généraliser. Les valeurs aberrantes sont problématiques car les moindres carrés mettent au carré chaque résidu : un seul mauvais point peut tirer la courbe à l’écart du reste.

Comment choisir le bon degré pour mon modèle polynomial ?

Commencez avec un degré 2 ou 3 — la plupart des relations courbes réelles n’exigent pas plus. Ensuite, utilisez la validation croisée k-fold pour comparer l’erreur moyenne de test entre degrés candidats et retenez celui pour lequel l’erreur cesse de diminuer. Si deux degrés donnent des résultats proches, choisissez le plus faible.

Quand utiliser des splines ou un SVR plutôt que la régression polynomiale ?

Choisissez les splines lorsque vos données se comportent différemment selon les régions, ou lorsqu’un polynôme unique devient instable aux bords de la plage observée. Optez pour un SVR avec noyau polynomial lorsque les valeurs aberrantes sont inévitables et que vous avez besoin d’un modèle moins enclin à se « déformer » pour les accommoder. Ces alternatives offrent plus de contrôle sur l’ajustement, au prix d’un peu d’interprétabilité.

Sujets

Apprenez avec DataCamp

Cours

Modélisation de régression bayésienne avec rstanarm

4 h
7K
Découvrez comment exploiter les méthodes d'estimation bayésiennes pour améliorer vos inférences sur les modèles de régression linéaire.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Contenus associés

blog

Architecture de l'entrepôt de données : Tendances, outils et techniques

Apprenez l'essentiel de l'architecture d'un entrepôt de données, des composants clés aux meilleures pratiques, pour construire un système de données évolutif et efficace !
Kurtis Pykes 's photo

Kurtis Pykes

15 min

Tutoriel

Normalisation vs. Standardisation: comment faire la différence

Découvrez les principales différences, les applications et la mise en œuvre de la normalisation et de la standardisation dans le prétraitement des données pour l’apprentissage automatique.
Samuel Shaibu's photo

Samuel Shaibu

Tutoriel

Séquence de Fibonacci en Python : Apprenez et explorez les techniques de codage

Veuillez découvrir le fonctionnement de la suite de Fibonacci. Veuillez explorer ses propriétés mathématiques et ses applications concrètes.
Laiba Siddiqui's photo

Laiba Siddiqui

Tutoriel

Tableaux Python

Tableaux Python avec exemples de code. Découvrez comment créer et imprimer des tableaux à l'aide de Python NumPy dès aujourd'hui.
DataCamp Team's photo

DataCamp Team

Tutoriel

Tutoriel sur la fonction range() en Python

Découvrez la fonction range() de Python et ses capacités à l'aide d'exemples.
Aditya Sharma's photo

Aditya Sharma

Tutoriel

Tutoriel Python sur les structures de données

Initiez-vous aux structures de données de Python : apprenez-en plus sur les types de données et les structures de données primitives et non primitives, telles que les chaînes de caractères, les listes, les piles, etc.
Sejal Jaiswal's photo

Sejal Jaiswal

Voir plusVoir plus