Utilisation de RobustScaler pour les données avec outliers

Le RobustScaler est utilisé pour standardiser les données tout en étant moins sensible aux valeurs aberrantes (outliers). Contrairement à la standardisation classique qui utilise la moyenne et l’écart-type, le RobustScaler utilise la médiane et l’IQR (interquartile range) pour calculer la transformation. Cela permet de réduire l’impact des valeurs extrêmes sur les données, en concentrant l’échelle sur les valeurs plus proches de la médiane. Ce scaler est particulièrement utile lorsque vos données contiennent des outliers qui pourraient fausser une standardisation classique.

Fonctions :

  • RobustScaler()

    RobustScaler est une méthode de normalisation qui est robuste aux outliers. Contrairement au StandardScaler, qui est sensible aux valeurs extrêmes, RobustScaler utilise les médianes et les interquartiles pour standardiser les données, ce qui le rend particulièrement adapté aux jeux de données contenant des valeurs aberrantes (outliers). Il fonctionne en soustrayant la médiane de chaque caractéristique et en divisant par l'écart interquartile (IQR). Explication de la fonction : Le RobustScaler transforme chaque caractéristique de données en soustrayant la médiane de la caractéristique et en divisant par l'écart interquartile (IQR). Cette méthode réduit l'impact des outliers, ce qui est particulièrement utile dans les jeux de données où des valeurs extrêmes peuvent fausser les résultats si un scaler comme le StandardScaler est utilisé. Formule du RobustScaler : Xscaled=X−median(X)IQR(X)X_{\text{scaled}} = \frac{X - \text{median}(X)}{\text{IQR}(X)}Xscaled​=IQR(X)X−median(X)​ Median(X) : La médiane de la caractéristique. IQR(X) : L'écart interquartile (différence entre le 75ème percentile et le 25ème percentile).

    Importation :

    from sklearn.preprocessing import RobustScaler
    import pandas as pd

    Attributs :

    Paramètre Description
    scaler L'instance du RobustScaler() qui permet de standardiser les données tout en étant robuste aux outliers.
    IQR L'intervalle interquartile, qui est utilisé pour l'échelle de normalisation.
    median La médiane de chaque caractéristique, utilisée pour centrer les données.

    Exemple de code :

    from sklearn.preprocessing import RobustScaler
    import pandas as pd
    
    # Exemple de DataFrame avec des outliers
    data = {'colonne': [1, 2, 2, 3, 100, 5, 6, 7, 8, 1000]}
    df = pd.DataFrame(data)
    
    # Créer une instance de RobustScaler
    scaler = RobustScaler()
    
    # Appliquer la transformation aux données
    df_scaled = scaler.fit_transform(df[['colonne']])
    
    # Afficher les résultats après transformation
    print(df_scaled)
    Résultat du code

    Explication du code :

    from sklearn.preprocessing import RobustScaler importe la classe RobustScaler de la bibliothèque scikit-learn, qui est utilisée pour standardiser les données en utilisant les statistiques robustes, c'est-à-dire en utilisant la médiane et l'écart interquartile. Cela permet de mieux gérer les outliers. import pandas as pd importe la bibliothèque pandas, renommée ici en pd pour simplifier son utilisation dans le code.

    Exemple de DataFrame avec des outliers

    Un dictionnaire nommé data est créé avec une clé 'colonne', contenant une liste de valeurs numériques. Certaines de ces valeurs sont des outliers (comme 100 et 1000). Ce dictionnaire est ensuite converti en un DataFrame df avec la fonction pd.DataFrame(data).

    Créer une instance de RobustScaler

    Une instance de la classe RobustScaler() est créée et assignée à la variable scaler. Ce scaler utilise des statistiques robustes (médiane et écart interquartile) pour normaliser les données, ce qui est particulièrement utile lorsque les données contiennent des valeurs extrêmes (outliers).

    Appliquer la transformation aux données

    La méthode fit_transform() est utilisée pour ajuster le scaler aux données et appliquer la transformation. Dans ce cas, elle est appliquée à la colonne 'colonne' du DataFrame df. Cette méthode ajuste les paramètres du scaler (médiane et écart interquartile) et applique la transformation, les résultats étant stockés dans df_scaled.

    Afficher les résultats après transformation

    La fonction print(df_scaled) affiche les données après la transformation, montrant ainsi comment les valeurs ont été redimensionnées tout en réduisant l'influence des outliers.