Standardisation
La standardisation est une technique de transformation des données visant à rendre les différentes variables comparables en les ramenant à une échelle commune. Elle est particulièrement utile lorsque les variables ont des unités ou des plages de valeurs très différentes, ce qui pourrait biaiser les résultats de certaines méthodes statistiques ou d’apprentissage automatique.
La standardisation consiste à transformer chaque valeur d’une variable pour qu’elle ait une moyenne égale à 0 et un écart-type égal à 1. Cette transformation, aussi appelée z-score, permet d’exprimer les données en termes d’écart à la moyenne. Elle est indispensable dans les algorithmes basés sur les distances (comme le k-means, la régression logistique ou les SVM) ou les modèles sensibles à la variance.
La formule mathématique de la standardisation est la suivante :
z = (x - μ) / σ
où x
est une valeur individuelle, μ
est la moyenne de la variable, et σ
son écart-type.
En Python, la bibliothèque scikit-learn
fournit une méthode simple et rapide pour standardiser les données via StandardScaler
, tandis que pandas
permet également de le faire manuellement.
Dans cette page, vous apprendrez quand et pourquoi utiliser la standardisation, comment l’appliquer correctement à vos données, et quels types de modèles bénéficient particulièrement de ce prétraitement. Des exemples concrets et des visualisations vous aideront à comprendre les effets de cette transformation.
Fonctions :
-
StandardScaler()
StandardScaler() est une classe de scikit-learn utilisée pour standardiser les données. Elle supprime la moyenne et divise par l'écart type pour que chaque caractéristique ait une moyenne de 0 et un écart type de 1. Cela améliore la performance de nombreux algorithmes d'apprentissage automatique sensibles à l’échelle des données (ex. : SVM, KNN, régression linéaire).
Attributs :
Paramètre Type Description Valeur par défaut copy
bool Si False
, évite de copier les données d'entrée si possible.True
with_mean
bool Centre les données avant de les transformer (moyenne = 0). True
with_std
bool Échelle les données pour qu'elles aient un écart type = 1. True
Exemple de code :
import pandas as pd from sklearn.preprocessing import StandardScaler # Création d'un DataFrame data = { 'taille': [150, 160, 170, 180, 190], 'poids': [50, 60, 70, 80, 90] } df = pd.DataFrame(data) # Initialisation du StandardScaler scaler = StandardScaler() # Application de la standardisation df_scaled = scaler.fit_transform(df) # Conversion en DataFrame pour lisibilité df_scaled = pd.DataFrame(df_scaled, columns=['taille', 'poids']) print(df_scaled)
Explication du code :
importe pandas et la classe StandardScaler de scikit-learn pour la normalisation.
Création du DataFrame
Le dictionnairedata
contient les colonnes'taille'
et'poids'
.df = pd.DataFrame(data)
crée un tableau de données avec ces colonnes.Initialisation du scaler
scaler = StandardScaler()
prépare un standardiseur qui va centrer et réduire les données.Standardisation
scaler.fit_transform(df)
calcule la moyenne et l’écart type pour chaque colonne, puis applique la transformation pour donner une moyenne de 0 et un écart type de 1.Conversion en DataFrame
Les données transformées sont remises dans un DataFrame avec les noms d’origine.Affichage
print(df_scaled)
affiche les données normalisées.