Standardisation des données avec StandardScaler
Le StandardScaler est une méthode de standardisation des données qui ajuste les valeurs d’une variable de manière à ce qu’elles aient une distribution avec une moyenne de 0 et un écart-type de 1. Ce processus est essentiel lorsque les données présentent des échelles différentes, car la standardisation permet de centrer les données et de les rendre comparables. Le StandardScaler applique la formule 𝑥 − 𝜇 𝜎 σ x−μ , où 𝑥 x est la valeur de la donnée, 𝜇 μ est la moyenne de la variable et 𝜎 σ est son écart-type. Cette méthode est souvent utilisée avec des modèles sensibles à l’échelle des données, tels que la régression linéaire ou les modèles de classification.
Fonctions :
-
StandardScaler()
Cette fonction permet d'appliquer une transformation (par exemple, une normalisation ou une standardisation) uniquement sur un sous-ensemble de colonnes sélectionnées dans un DataFrame, en préservant les autres colonnes inchangées. C'est utile lorsque vous souhaitez appliquer des transformations mathématiques à des colonnes spécifiques, tout en gardant les autres colonnes (qui pourraient ne pas être numériques) intactes.
Attributs :
Concept de la standardisation avec StandardScaler :
La standardisation avec
StandardScaler
est une technique qui consiste à redimensionner les données de manière à ce qu'elles aient une moyenne de 0 et un écart-type de 1. Cette méthode est particulièrement utile lorsque les données sont sur des échelles différentes mais que vous souhaitez qu'elles aient une distribution comparable. Elle est utilisée pour les modèles qui supposent que les données suivent une distribution normale (comme la régression linéaire, la régression logistique, les SVMs, etc.).La transformation effectuée par
xstandardiseˊ=x−μσx_{\text{standardisé}} = \frac{x - \mu}{\sigma}StandardScaler
suit la formule :où :
- xx est la valeur à standardiser,
- μ\mu est la moyenne de la colonne,
- σ\sigma est l'écart-type de la colonne.
Cela permet de recentrer les données autour de 0, avec une échelle comparée en termes de variabilité (écart-type égal à 1).
Avantages de la standardisation avec StandardScaler :
- Elle ne contraint pas les données dans une plage spécifique (contrairement à la normalisation, qui les limite entre 0 et 1).
- Elle est utile pour les modèles qui font des hypothèses sur la distribution des données, comme les SVM, les régressions linéaires, et les réseaux de neurones.
- La standardisation est également importante lorsque les données ont des unités différentes ou des plages très variées.
Exemple de code :
import pandas as pd from sklearn.preprocessing import StandardScaler # Exemple de DataFrame data = {'age': [25, 30, 35, 40, 45, 50], 'salaire': [30000, 35000, 40000, 45000, 50000, 55000]} df = pd.DataFrame(data) # Initialisation du StandardScaler scaler = StandardScaler() # Standardisation de la colonne 'age' df['age_standardized'] = scaler.fit_transform(df[['age']]) # Affichage des données standardisées print(df)
Explication du code :
import pandas as pd
importe la bibliothèque pandas qui est utilisée pour la manipulation de données sous forme deDataFrame
.
from sklearn.preprocessing import StandardScaler
importe la classe StandardScaler de la bibliothèque scikit-learn, qui est utilisée pour standardiser (normaliser) les données, c'est-à-dire les transformer de manière à ce qu'elles aient une moyenne de 0 et un écart-type de 1.Création d'un DataFrame
Le dictionnaire
data
contient deux colonnes :'age'
et'salaire'
, représentant respectivement l'âge et le salaire de plusieurs individus. Ces données sont converties en unDataFrame
avec la méthodepd.DataFrame(data)
.Initialisation du StandardScaler
scaler = StandardScaler()
crée un objet StandardScaler, qui sera utilisé pour standardiser les données de la colonne'age'
.Standardisation de la colonne
'age'
df['age_standardized'] = scaler.fit_transform(df[['age']])
applique le processus de standardisation à la colonne'age'
. La méthodefit_transform()
calcule la moyenne et l'écart-type de la colonne'age'
, puis effectue la transformation, créant une nouvelle colonne'age_standardized'
avec les valeurs standardisées de l'âge.Affichage des données standardisées
print(df)
affiche leDataFrame
final, qui contient maintenant la colonne'age_standardized'
avec les valeurs standardisées de l'âge.