Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre StandardScaler, MinMaxScaler, MaxAbsScaler | Prétraitement des Données avec Scikit-learn
Introduction au ML Avec Scikit-Learn

bookStandardScaler, 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).

Note
Note

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.

12345678910
import 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)
copy

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.

Note
Remarque

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 ?

question mark

Quel est le principal objectif de l'utilisation de MinMaxScaler lors de la prétraitement des données ?

Select the correct answer

question mark

Pourquoi pourriez-vous reconsidérer l'utilisation de StandardScaler pour votre jeu de données ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 10

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

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

bookStandardScaler, 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).

Note
Note

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.

12345678910
import 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)
copy

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.

Note
Remarque

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 ?

question mark

Quel est le principal objectif de l'utilisation de MinMaxScaler lors de la prétraitement des données ?

Select the correct answer

question mark

Pourquoi pourriez-vous reconsidérer l'utilisation de StandardScaler pour votre jeu de données ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 10
some-alt