Module 3 — Mise à l'échelle : normalisation et standardisation
Les deux cours précédents ont répété que la standardisation était indispensable. Ce module explique enfin pourquoi, pour quels modèles, et surtout lesquels s'en passent très bien. Confondre les deux familles fait perdre du temps dans un sens, et de la performance dans l'autre.
Quels modèles l'exigent, lesquels s'en moquent
La règle est claire dès qu'on l'énonce correctement : la mise à l'échelle importe pour tout modèle qui calcule des distances, des produits scalaires, ou qui optimise par descente de gradient.
| Sensible à l'échelle | Indifférent à l'échelle |
|---|---|
| k plus proches voisins, SVM | arbres de décision |
| k-moyennes, DBSCAN, ACP | forêts aléatoires |
| régressions régularisées (Ridge, Lasso) | gradient boosting |
| réseaux de neurones | — |
La colonne de droite s'explique simplement : un arbre ne compare jamais deux variables entre elles. Il pose des questions du type « revenu > 30 000 ? », sur une variable à la fois. Multipliez tous les revenus par mille et l'arbre trouvera exactement le même seuil, mille fois plus grand, avec la même partition. Aucune mise à l'échelle n'est nécessaire pour les méthodes à base d'arbres, et c'est l'une des raisons de leur popularité sur données tabulaires hétérogènes.
Un cas mérite d'être signalé : la régularisation. Ridge et Lasso pénalisent la taille des coefficients, or un coefficient dépend de l'unité de sa variable. Sans mise à l'échelle, la pénalité frappe arbitrairement plus fort les variables de petite amplitude — le réglage devient incohérent.
Les trois transformations à connaître
from sklearn.preprocessing import StandardScaler, MinMaxScaler, RobustScaler
StandardScaler() # (x - moyenne) / ecart-type -> moyenne 0, ecart-type 1
MinMaxScaler() # (x - min) / (max - min) -> borne dans [0, 1]
RobustScaler() # (x - mediane) / IQR -> insensible aux aberrants
La standardisation est le choix par défaut. Elle centre et réduit sans borner, et ne suppose pas de valeurs extrêmes connues. C'est ce qu'attendent l'ACP et les modèles régularisés.
La normalisation min-max borne dans un intervalle fixe, ce qui est utile quand une plage précise est requise — entrées d'un réseau de neurones, traitement d'images. Sa faiblesse est nette : une seule valeur aberrante fixe le maximum et écrase toutes les autres valeurs dans une portion minuscule de l'intervalle.
La mise à l'échelle robuste utilise médiane et écart interquartile. C'est le bon réflexe en présence d'aberrants qu'on ne veut ni supprimer ni laisser dominer, pour la même raison qu'au module précédent.
Mettre à l'échelle ne corrige pas la forme de la distribution
Point souvent mal compris, et source de déceptions. La standardisation change l'échelle, pas la forme : une distribution fortement asymétrique reste asymétrique après standardisation, avec la même queue.
Or l'asymétrie gêne réellement les modèles linéaires, qui supposent des relations régulières. Pour agir sur la forme, il faut d'autres transformations :
- logarithme (
np.log1p, qui gère le zéro) pour les distributions à longue traîne — montants, populations, temps d'attente. C'est de loin la plus utile ; - racine carrée, effet analogue mais plus doux ;
- Box-Cox ou Yeo-Johnson (
PowerTransformer), qui cherchent automatiquement la transformation rendant la distribution la plus proche possible d'une normale ; - discrétisation en tranches (
KBinsDiscretizer), qui abandonne la granularité pour capturer des effets de seuil.
Le logarithme mérite un mot de plus : sur une variable de montant, il transforme les écarts multiplicatifs en écarts additifs. Passer de 10 à 100 euros devient équivalent à passer de 100 à 1 000 — ce qui correspond souvent bien mieux à la réalité économique du phénomène qu'un écart brut.
Même piège qu'au module 2, et il vaut pour toutes les transformations de ce cours. Moyenne, écart-type, minimum, maximum, médiane : ces statistiques se calculent sur les données d'entraînement uniquement (fit), puis s'appliquent au test (transform). Un fit_transform sur l'ensemble complet est une fuite de données silencieuse — le score monte, la production déçoit.
En résumé
- La mise à l'échelle importe pour les modèles à distances, produits scalaires ou descente de gradient ; les méthodes à base d'arbres s'en passent totalement.
- Standardisation par défaut, min-max quand une plage bornée est requise, robuste en présence de valeurs aberrantes.
- Mettre à l'échelle ne change pas la forme de la distribution : l'asymétrie se traite par logarithme, Yeo-Johnson ou discrétisation.
- Toutes les statistiques de transformation s'ajustent sur l'entraînement seul, puis s'appliquent au test.
Module suivant : l'encodage des variables catégorielles, où le choix de la méthode dépend directement de la cardinalité.