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)
Explication du code :
- Création des données : Nous créons un DataFrame
df
avec une colonne qui contient des valeurs avec des outliers (100
et1000
). - Création de l'instance RobustScaler : Nous créons une instance de
RobustScaler
pour effectuer la normalisation robuste. - Application de la transformation : Nous appliquons la méthode
fit_transform()
sur la colonnecolonne
de notre DataFrame pour standardiser les données. Cela transforme les données en les centrant autour de la médiane et en ajustant la dispersion à l'écart interquartile. - Affichage des résultats : Nous affichons les données transformées.
Conseils d'utilisation :
- RobustScaler vs StandardScaler : Utilisez RobustScaler lorsque vos données contiennent des outliers qui pourraient fausser les résultats si vous utilisez des méthodes de normalisation plus sensibles comme
StandardScaler
. - Comparaison avec MinMaxScaler : Alors que
MinMaxScaler
utilise les valeurs min et max pour normaliser les données,RobustScaler
s'appuie sur les médianes et l'écart interquartile, rendant la transformation plus robuste en présence de valeurs extrêmes.
- Création des données : Nous créons un DataFrame