Encodage avec LabelEncoder

L’encodage avec LabelEncoder permet de transformer les variables catégorielles en valeurs numériques. Cette méthode est particulièrement utile pour les modèles d’apprentissage automatique qui nécessitent des données numériques en entrée. LabelEncoder attribue un numéro unique à chaque catégorie présente dans une colonne, en effectuant un mappage des catégories sous forme de valeurs entières. Cette technique est adaptée aux variables ordinales, où l’ordre entre les catégories a du sens. Toutefois, elle n’est pas recommandée pour des variables nominales, où l’ordre n’a pas d’importance, car l’encodeur introduit une relation d’ordre qui pourrait être interprétée incorrectement par certains modèles.

Fonctions :

  • LabelEncoder()

    Le LabelEncoder() est une classe de la bibliothèque sklearn.preprocessing qui permet de convertir des étiquettes (catégorielles) en valeurs numériques. Cela est souvent nécessaire pour des modèles de machine learning qui ne peuvent pas travailler directement avec des valeurs textuelles. LabelEncoder() affecte une valeur numérique unique à chaque catégorie présente dans la colonne spécifiée.

    Importation :

    from sklearn.preprocessing import LabelEncoder
    import pandas as pd

    Attributs :

    Paramètre Type Description Valeur par défaut
    fit() method Apprend l'encodage des étiquettes. N/A
    transform() method Applique l'encodage sur les données. N/A
    fit_transform() method Combine fit() et transform() pour une utilisation plus efficace. N/A

    Exemple de code :

    from sklearn.preprocessing import LabelEncoder
    import pandas as pd
    
    # Exemple de DataFrame
    data = {
        'produit': ['A', 'B', 'C', 'B', 'A', 'C'],
        'prix': [10, 20, 30, 20, 10, 30]
    }
    df = pd.DataFrame(data)
    
    # Création d'un LabelEncoder
    le = LabelEncoder()
    
    # Encodage de la colonne 'produit'
    df['produit_encoded'] = le.fit_transform(df['produit'])
    
    print(df)
    Résultat du code

    Explication du code :

    from sklearn.preprocessing import LabelEncoder importe la classe LabelEncoder du module sklearn.preprocessing, utilisée pour convertir des données catégorielles en valeurs numériques. import pandas as pd importe la bibliothèque pandas, utilisée ici pour manipuler les données sous forme de DataFrame.

    Création d’un DataFrame

    Le dictionnaire data contient deux colonnes : 'produit' (valeurs catégorielles) et 'prix' (valeurs numériques). Certains produits sont répétés.

    df = pd.DataFrame(data) transforme ce dictionnaire en DataFrame.

    Encodage des catégories avec LabelEncoder

    le = LabelEncoder() crée une instance de l'encodeur.

    df['produit_encoded'] = le.fit_transform(df['produit']) encode les valeurs textuelles de la colonne 'produit' en valeurs entières. Chaque catégorie unique reçoit un identifiant numérique :

    • 'A' → 0
    • 'B' → 1
    • 'C' → 2

    Les valeurs encodées sont stockées dans une nouvelle colonne 'produit_encoded'.

    Affichage du DataFrame

    print(df) affiche le DataFrame avec les colonnes originales et la nouvelle colonne contenant les codes numériques des produits.