Mise à l’échelle des caractéristiques : normalisation et standardisation
MinMaxScaler, StandardScaler, RobustScaler — quand utiliser chacun et pourquoi cela compte.
Mise à l’échelle des caractéristiques : normalisation et standardisation est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.
Pourquoi mettre les variables à l'échelle ?
De nombreux algorithmes sont sensibles à la MAGNITUDE des variables. Une variable allant de 0 à 1 000 000 dominera une variable allant de 0 à 1 dans les modèles fondés sur les distances ou les gradients. La mise à l'échelle place les variables dans des intervalles comparables.
Qui a besoin d'une mise à l'échelle
La mise à l'échelle est importante pour KNN, SVM, k-means, PCA et les modèles fondés sur la descente de gradient, comme la régression linéaire ou logistique et les réseaux neuronaux. Les modèles fondés sur des arbres (forêts aléatoires, augmentation de gradient) sont invariants par rapport à l'échelle et n'en ont pas besoin.
Normalisation : MinMaxScaler
La normalisation min-max redimensionne chaque variable sur un intervalle fixe, généralement de 0 à 1, avec (x - min) / (max - min). Elle préserve la forme de la distribution.
from sklearn.preprocessing import MinMaxScaler
import numpy as np
X = np.array([[10.0], [20.0], [30.0], [40.0]])
scaler = MinMaxScaler()
print(scaler.fit_transform(X).ravel()) # [0. 0.333 0.667 1.]Standardisation : StandardScaler
La standardisation donne à chaque variable une moyenne nulle et une variance unitaire avec (x - mean) / std. Le résultat est un score z ; les valeurs sont centrées, mais non limitées.
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
Xs = scaler.fit_transform(X)
print(Xs.ravel())
print(Xs.mean(), Xs.std()) # ~0 and ~1MinMax ou standardisation
Utilisez MinMax lorsque vous avez besoin d'un intervalle borné (par ex. pour les pixels d'image ou les entrées de réseaux neuronaux). Utilisez la standardisation lorsque l'algorithme suppose des données approximativement centrées sur zéro (PCA, SVM, modèles linéaires). MinMax est plus sensible aux valeurs aberrantes.
RobustScaler pour les valeurs aberrantes
RobustScaler centre les données sur la MEDIAN et les redimensionne avec l'IQR. Comme ces deux mesures résistent aux valeurs aberrantes, c'est le bon choix lorsque des valeurs extrêmes fausseraient les autres outils de mise à l'échelle.
from sklearn.preprocessing import RobustScaler
Xo = np.array([[1.0], [2.0], [3.0], [4.0], [100.0]])
print(RobustScaler().fit_transform(Xo).ravel())fit ou transform
Les outils de mise à l'échelle LEARN leurs paramètres dans fit (le minimum et le maximum, ou la moyenne et l'écart type) et les APPLY dans transform. fit_transform effectue les deux opérations en un seul appel.
scaler = StandardScaler()
scaler.fit(X) # learns mean and std
Xs = scaler.transform(X) # applies themLa règle d'or : ajuster uniquement sur l'entraînement
Utilisez toujours fit sur l'ensemble TRAINING, puis utilisez seulement transform sur le jeu d'évaluation avec ces paramètres appris. Ajuster le modèle sur les données d'évaluation laisse des informations les concernant s'infiltrer dans votre modèle.
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test) # transform only!Pourquoi ne pas ajuster sur le jeu d'évaluation
Si vous mettez les données à l'échelle avec des statistiques qui incluent le jeu d'évaluation, votre évaluation voit des informations auxquelles elle ne devrait pas avoir accès : c'est une fuite de données. Cela produit des estimations optimistes et peu fiables des performances.
Transformation inverse
Les outils de mise à l'échelle peuvent inverser l'opération avec inverse_transform, ce qui permet de reconvertir les prédictions mises à l'échelle dans leurs unités d'origine pour les présenter.
original = scaler.inverse_transform(X_train_scaled)
# recovers the pre-scaled valuesMettre la cible à l'échelle
En classification, vous mettez généralement à l'échelle les FEATURES, et non la cible. En régression, vous pouvez également mettre la cible à l'échelle, mais pensez alors à appliquer la transformation inverse aux prédictions avant de présenter les erreurs.
Vérification rapide
Vérifiez vos connaissances sur la mise à l'échelle.
Récapitulatif
Boîte à outils de mise à l'échelle :
- La mise à l'échelle est importante pour les modèles fondés sur les distances ou les gradients ; les arbres l'ignorent
MinMaxScaler-> intervalle borné de 0..1 ;StandardScaler-> moyenne nulle et variance unitaireRobustScalerutilise la médiane et l'IQR, et résiste aux valeurs aberrantes- Utilisez toujours
fit_transformsur l'entraînement ettransformuniquement sur le jeu d'évaluation (pour éviter les fuites)
Questions Fréquemment Posées
La leçon « Mise à l’échelle des caractéristiques : normalisation et standardisation » est-elle gratuite ?
Oui — le texte complet de « Mise à l’échelle des caractéristiques : normalisation et standardisation » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Mise à l’échelle des caractéristiques : normalisation et standardisation » ?
MinMaxScaler, StandardScaler, RobustScaler — quand utiliser chacun et pourquoi cela compte. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Mise à l’échelle des caractéristiques : normalisation et standardisation » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Détection et suppression des valeurs aberrantes
- Encodage des variables catégorielles
- Mise à l’échelle des caractéristiques : normalisation et standardisation
- Construire des pipelines de prétraitement