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

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érez les caractéristiques 'culmen_depth_mm' et 'body_mass_g' du jeu de données penguins. Ces caractéristiques peuvent être tracées pour observer leurs échelles.

aucune mise à l'échelle

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.

MinMax
MinMaxScaler

Voici le gif montrant le fonctionnement de MinMaxScaler :

Mise à l'échelle MinMax

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 1.

MaxAbs
MaxAbsScaler
Mise à l'échelle MaxAbs

StandardScaler

L'idée de 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 Learning Statistics with Python. Cependant, cette connaissance n'est pas obligatoire pour continuer.

Formule StandardScaler
StandardScaler
StandardScaling

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)

Le résultat n'est pas très lisible 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 faut uniquement mettre à l'échelle 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 du 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 du 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