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)

    Explication du code :

    • DataFrame : Le DataFrame contient une colonne 'produit' avec des valeurs catégorielles.
    • LabelEncoder() : La classe LabelEncoder est initialisée dans le.
    • fit_transform() : Cette méthode apprend les catégories uniques dans la colonne 'produit' et les transforme en valeurs numériques. Par exemple, 'A' devient 0, 'B' devient 1 et 'C' devient 2.

    Remarques :

    • Gestion des catégories inconnues : Si vous devez appliquer le même encodeur à un autre jeu de données, veillez à ce que toutes les catégories du jeu de données de test soient également présentes dans le jeu de données d'entraînement. Si des catégories inconnues apparaissent, cela pourrait entraîner des erreurs.