Normalisation des données avec MinMaxScaler

MinMaxScaler() est une classe de la bibliothèque scikit-learn utilisée pour effectuer une normalisation min-max des données numériques. Cette transformation met à l’échelle chaque caractéristique (chaque colonne) pour que ses valeurs soient comprises dans un intervalle défini, par défaut entre 0 et 1.

La formule appliquée est la suivante pour chaque valeur xx de la colonne :

xscaled=xxminxmaxxminx_{\text{scaled}} = \frac{x – x_{\min}}{x_{\max} – x_{\min}}

xminx_{\min} et xmaxx_{\max} sont respectivement la valeur minimale et maximale de la colonne.

Objectif :

Principales caractéristiques :

Fonctions :

  • MinMaxScaler()

    MinMaxScaler() est une classe de scikit-learn qui normalise les données en les mettant à l’échelle entre une valeur minimale et maximale spécifiée (par défaut entre 0 et 1). Elle transforme chaque valeur selon la formule ( 𝑥 − 𝑥 min ⁡ ) / ( 𝑥 max ⁡ − 𝑥 min ⁡ ) (x−x min ​ )/(x max ​ −x min ​ ), ce qui permet d’uniformiser les variables pour améliorer la performance de certains algorithmes sensibles à l’échelle, comme les réseaux de neurones ou les méthodes basées sur la distance.

    Importation :

    from sklearn.preprocessing import MinMaxScaler

    Attributs :

    Paramètre Description
    feature_range Tuple (min, max) définissant l'intervalle dans lequel les données seront mises à l'échelle. Par défaut, (0, 1).
    copy (facultatif) Booléen. Si True (par défaut), crée une copie des données avant transformation. Si False, la transformation est faite sur place.
    clip (facultatif) Booléen. Si True, les valeurs transformées seront limitées à l'intervalle spécifié par feature_range. Par défaut, False.

    Exemple de code :

    from sklearn.preprocessing import MinMaxScaler
    import numpy as np
    
    # Exemple de données : 2 caractéristiques, 5 échantillons
    data = np.array([[10, 200],
                     [15, 220],
                     [20, 240],
                     [25, 260],
                     [30, 280]])
    
    # Création du scaler
    scaler = MinMaxScaler()
    
    # Calcul des min et max, et transformation des données
    data_scaled = scaler.fit_transform(data)
    
    print("Données originales :")
    print(data)
    print("\nDonnées mises à l'échelle entre 0 et 1 :")
    print(data_scaled)
    Résultat du code

    Explication du code :

    • Importation de la bibliothèque : La ligne from sklearn.preprocessing import MinMaxScaler importe la classe MinMaxScaler depuis le module sklearn.preprocessing. Cette classe est utilisée pour mettre à l'échelle les données numériques entre une plage donnée.
    • Définition des données : Le tableau data contient un ensemble d'échantillons à une seule caractéristique. Ici, c'est une liste de listes avec des valeurs numériques que l'on souhaite normaliser.
    • Initialisation du scaler : La création d'un objet scaler = MinMaxScaler(feature_range=(0, 1)) initialise un scaler qui transformera toutes les valeurs pour qu'elles soient comprises entre 0 et 1. Le paramètre feature_range définit cette plage cible.
    • Apprentissage et transformation : La méthode fit_transform() effectue deux opérations :
      • fit : calcule les valeurs minimum et maximum de la donnée d'origine.
      • transform : applique la transformation pour que les valeurs soient mises à l’échelle entre 0 et 1 selon la formule :

      x_scaled = (x - min) / (max - min)

    • Affichage du résultat : La fonction print(data_scaled) affiche la version transformée des données. Chaque valeur initiale est convertie proportionnellement dans la plage [0, 1].