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 :
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 enpd
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 (comme100
et1000
). Ce dictionnaire est ensuite converti en un DataFramedf
avec la fonctionpd.DataFrame(data)
.Créer une instance de RobustScaler
Une instance de la classe
RobustScaler()
est créée et assignée à la variablescaler
. 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 DataFramedf
. Cette méthode ajuste les paramètres du scaler (médiane et écart interquartile) et applique la transformation, les résultats étant stockés dansdf_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.