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 StandardScaler suit la formule :

    xstandardiseˊ=x−μσx_{\text{standardisé}} = \frac{x - \mu}{\sigma}

    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)
    Résultat du code

    Explication du code :

    import pandas as pd importe la bibliothèque pandas qui est utilisée pour la manipulation de données sous forme de DataFrame.
    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 un DataFrame avec la méthode pd.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éthode fit_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 le DataFrame final, qui contient maintenant la colonne 'age_standardized' avec les valeurs standardisées de l'âge.