StandardScaler, MinMaxScaler, MaxAbsScaler
Il existe trois approches populaires pour la mise à l'échelle des données :
MinMaxScaler
: met à l'échelle les caractéristiques dans une plage de [0, 1] ;MaxAbsScaler
: met à l'échelle les caractéristiques de sorte que la valeur absolue maximale soit 1 (ainsi, les données sont garanties d'être dans une plage de [-1, 1]) ;StandardScaler
: standardise les caractéristiques en rendant la moyenne égale à 0 et la variance égale à 1.
Pour illustrer le fonctionnement des scalers, considérer les caractéristiques 'culmen_depth_mm'
et 'body_mass_g'
du jeu de données penguins. Ces caractéristiques peuvent être représentées graphiquement pour observer leurs échelles.
MinMaxScaler
Le MinMaxScaler
fonctionne en soustrayant la valeur minimale (pour que les valeurs commencent à zéro) puis en divisant par (x_max - x_min) afin que le résultat soit inférieur ou égal à 1.
Voici le gif illustrant le fonctionnement de MinMaxScaler
:
MaxAbsScaler
Le MaxAbsScaler
fonctionne en trouvant la valeur absolue maximale et en divisant chaque valeur par celle-ci. Cela garantit que la valeur absolue maximale est égale à 1.
StandardScaler
L'idée du StandardScaler
provient des statistiques. Il fonctionne en soustrayant la moyenne (pour centrer autour de zéro) et en divisant par l'écart type (pour que la variance soit égale à 1).
Si vous ne comprenez pas ce que sont la moyenne, l'écart type et la variance, vous pouvez consulter notre cours Apprendre les statistiques avec Python. Cependant, cette connaissance n'est pas obligatoire pour continuer.
Voici un exemple de code avec MinMaxScaler
. Les autres scalers s'appliquent de la même manière.
12345678910import pandas as pd from sklearn.preprocessing import MinMaxScaler df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed_encoded.csv') # Assign X,y variables X, y = df.drop('species', axis=1), df['species'] # Initialize a MinMaxScaler object and transform the X minmax = MinMaxScaler() X = minmax.fit_transform(X) print(X)
La sortie n'est pas la plus esthétique car les scalers transforment les données en un tableau numpy
, mais avec les pipelines, cela ne posera pas de problème.
Il convient de ne mettre à l'échelle que les colonnes de caractéristiques (la variable X
). Il n'est pas nécessaire de mettre à l'échelle la variable cible, car cela compliquerait le processus de transformation inverse.
Quel scaler utiliser ?
Un StandardScaler
est plus sensible aux valeurs aberrantes, ce qui le rend moins adapté comme scaler par défaut. Si vous souhaitez une alternative à StandardScaler
, le choix entre MinMaxScaler
et MaxAbsScaler
dépend de vos préférences, que ce soit pour mettre à l'échelle les données dans l'intervalle [0,1] avec MinMaxScaler
ou dans l'intervalle [-1,1] avec MaxAbsScaler
.
1. Quel est le principal objectif de l'utilisation de MinMaxScaler
lors de la prétraitement des données ?
2. Pourquoi pourriez-vous reconsidérer l'utilisation de StandardScaler
pour votre jeu de données ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 3.13
StandardScaler, MinMaxScaler, MaxAbsScaler
Glissez pour afficher le menu
Il existe trois approches populaires pour la mise à l'échelle des données :
MinMaxScaler
: met à l'échelle les caractéristiques dans une plage de [0, 1] ;MaxAbsScaler
: met à l'échelle les caractéristiques de sorte que la valeur absolue maximale soit 1 (ainsi, les données sont garanties d'être dans une plage de [-1, 1]) ;StandardScaler
: standardise les caractéristiques en rendant la moyenne égale à 0 et la variance égale à 1.
Pour illustrer le fonctionnement des scalers, considérer les caractéristiques 'culmen_depth_mm'
et 'body_mass_g'
du jeu de données penguins. Ces caractéristiques peuvent être représentées graphiquement pour observer leurs échelles.
MinMaxScaler
Le MinMaxScaler
fonctionne en soustrayant la valeur minimale (pour que les valeurs commencent à zéro) puis en divisant par (x_max - x_min) afin que le résultat soit inférieur ou égal à 1.
Voici le gif illustrant le fonctionnement de MinMaxScaler
:
MaxAbsScaler
Le MaxAbsScaler
fonctionne en trouvant la valeur absolue maximale et en divisant chaque valeur par celle-ci. Cela garantit que la valeur absolue maximale est égale à 1.
StandardScaler
L'idée du StandardScaler
provient des statistiques. Il fonctionne en soustrayant la moyenne (pour centrer autour de zéro) et en divisant par l'écart type (pour que la variance soit égale à 1).
Si vous ne comprenez pas ce que sont la moyenne, l'écart type et la variance, vous pouvez consulter notre cours Apprendre les statistiques avec Python. Cependant, cette connaissance n'est pas obligatoire pour continuer.
Voici un exemple de code avec MinMaxScaler
. Les autres scalers s'appliquent de la même manière.
12345678910import pandas as pd from sklearn.preprocessing import MinMaxScaler df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_imputed_encoded.csv') # Assign X,y variables X, y = df.drop('species', axis=1), df['species'] # Initialize a MinMaxScaler object and transform the X minmax = MinMaxScaler() X = minmax.fit_transform(X) print(X)
La sortie n'est pas la plus esthétique car les scalers transforment les données en un tableau numpy
, mais avec les pipelines, cela ne posera pas de problème.
Il convient de ne mettre à l'échelle que les colonnes de caractéristiques (la variable X
). Il n'est pas nécessaire de mettre à l'échelle la variable cible, car cela compliquerait le processus de transformation inverse.
Quel scaler utiliser ?
Un StandardScaler
est plus sensible aux valeurs aberrantes, ce qui le rend moins adapté comme scaler par défaut. Si vous souhaitez une alternative à StandardScaler
, le choix entre MinMaxScaler
et MaxAbsScaler
dépend de vos préférences, que ce soit pour mettre à l'échelle les données dans l'intervalle [0,1] avec MinMaxScaler
ou dans l'intervalle [-1,1] avec MaxAbsScaler
.
1. Quel est le principal objectif de l'utilisation de MinMaxScaler
lors de la prétraitement des données ?
2. Pourquoi pourriez-vous reconsidérer l'utilisation de StandardScaler
pour votre jeu de données ?
Merci pour vos commentaires !