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 à l'Apprentissage Automatique avec Python

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 [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 [-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érez 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 identifiant la valeur absolue maximale et en divisant chaque valeur par celle-ci. Cela garantit que la valeur absolue maximale est égale à 1.

StandardScaler

Le principe du StandardScaler provient des statistiques. Il consiste à soustraire la moyenne (pour centrer autour de zéro) puis à diviser par l’écart type (pour que la variance soit égale à 1).

Note
Remarque

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, ces connaissances ne sont pas obligatoires pour continuer.

Voici un exemple de code avec MinMaxScaler. Les autres scalers sont appliqués 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 préférez une alternative à StandardScaler, le choix entre MinMaxScaler et MaxAbsScaler dépend de la préférence personnelle, selon que vous souhaitez 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 ?

Sélectionnez la réponse correcte

question mark

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

Sélectionnez la réponse correcte

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

Section 2. Chapitre 10
some-alt