Encodage One-Hot avec pd.get_dummies()

L’encodage One-Hot avec pd.get_dummies() permet de transformer des variables catégorielles en une série de colonnes binaires (0 ou 1), où chaque colonne représente une catégorie unique. Cette méthode est particulièrement utile pour les modèles qui ne peuvent pas traiter directement des variables catégorielles, en transformant chaque valeur distincte d’une colonne en une nouvelle colonne binaire. Par exemple, pour une colonne avec les catégories ‘A’, ‘B’ et ‘C’, pd.get_dummies() créera trois nouvelles colonnes, chacune représentant une des catégories avec des valeurs de 1 (si la ligne appartient à cette catégorie) ou 0 (sinon). Cela permet de rendre les données adaptées aux algorithmes d’apprentissage automatique qui exigent des entrées numériques.

Fonctions :

  • pd.get_dummies()

    L'encodage One-Hot est une méthode qui permet de transformer des données catégorielles en une représentation binaire, où chaque catégorie est représentée par une colonne distincte avec une valeur de 1 ou 0. Cela est particulièrement utile pour les modèles de machine learning qui ne peuvent pas traiter directement des variables catégorielles. Chaque valeur unique d'une colonne devient une nouvelle colonne, et chaque ligne reçoit un 1 dans la colonne correspondant à sa catégorie et un 0 dans les autres.

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Type Description Valeur par défaut
    columns list of str Spécifie les colonnes à encoder. None
    drop_first bool Si True, la première colonne est supprimée pour éviter la multicolinéarité. False
    prefix str, optional Permet de spécifier un préfixe pour le nom des nouvelles colonnes. None
    prefix_sep str, optional Définit un séparateur entre le préfixe et la catégorie dans le nom des colonnes. _

    Exemple de code :

    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)
    
    # Encodage One-Hot de la colonne 'produit'
    df_encoded = pd.get_dummies(df, columns=['produit'])
    
    print(df_encoded)
    Résultat du code

    Explication du code :

    import pandas as pd importe la bibliothèque pandas, utilisée ici pour manipuler des 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). Les produits sont répétés dans le DataFrame.

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

    Encodage One-Hot de la colonne 'produit'

    df_encoded = pd.get_dummies(df, columns=['produit']) applique l'encodage One-Hot sur la colonne 'produit'. Cela transforme chaque valeur unique de cette colonne en une nouvelle colonne binaire. Chaque produit (A, B, C) reçoit une colonne distincte, avec une valeur de 1 si le produit est présent et 0 sinon. Voici le résultat :

    • La colonne 'produit_A' représente le produit A, avec 1 lorsque le produit est A et 0 sinon.
    • La colonne 'produit_B' représente le produit B, avec 1 lorsque le produit est B et 0 sinon.
    • La colonne 'produit_C' représente le produit C, avec 1 lorsque le produit est C et 0 sinon.
    Affichage du DataFrame encodé

    print(df_encoded) affiche le DataFrame avec les nouvelles colonnes générées par l'encodage One-Hot.