Imputation avancée des valeurs manquantes (SimpleImputer de Scikit-learn)

La classe SimpleImputer de la bibliothèque Scikit-learn offre une méthode avancée pour remplacer les valeurs manquantes dans un jeu de données. Contrairement à fillna(), qui permet des imputations simples, SimpleImputer propose plusieurs stratégies d’imputation, telles que la substitution par la moyenne, la médiane ou la mode des données existantes. Elle permet également de spécifier une stratégie personnalisée ou d’imputer les données à l’aide d’une valeur constante. Cette approche est particulièrement utile pour les modèles de machine learning, où les valeurs manquantes doivent être traitées avant l’entraînement. SimpleImputer peut être appliqué sur des colonnes numériques ou catégorielles, garantissant ainsi une gestion cohérente des données manquantes dans un dataset.

Fonctions :

  • SimpleImputer de Scikit-learn

    La classe SimpleImputer de Scikit-learn permet d'effectuer une imputation avancée des valeurs manquantes en remplaçant les valeurs NaN par des valeurs calculées à partir des autres éléments d'une colonne ou d'une ligne. Elle propose plusieurs stratégies pour remplir les valeurs manquantes, telles que la moyenne, la médiane, ou la constante spécifiée par l'utilisateur.

    Importation :

    from sklearn.impute import SimpleImputer
    import pandas as pd

    Attributs :

    Paramètre Type Description Valeur par défaut
    strategy str Stratégie utilisée pour l'imputation. Options disponibles : 'mean', 'median', 'most_frequent', 'constant' -

    Exemple de code :

    from sklearn.impute import SimpleImputer
    import pandas as pd
    
    # Création d'un DataFrame exemple avec des valeurs manquantes
    data = {
        'Nom': ['Alice', 'Bob', 'Charlie', None, 'Eva'],
        'Âge': [24, None, 35, 40, None],
        'Ville': ['Paris', 'Lyon', None, 'Nice', 'Bordeaux']
    }
    
    df = pd.DataFrame(data)
    
    # Initialisation de l'imputer pour remplacer les valeurs manquantes par la moyenne
    imputer = SimpleImputer(strategy='mean')
    
    # Appliquer l'imputer sur les colonnes numériques
    df['Âge'] = imputer.fit_transform(df[['Âge']])
    
    # Afficher le DataFrame après imputation
    print(df)
    Résultat du code

    Explication du code :

    from sklearn.impute import SimpleImputer importe la classe SimpleImputer depuis le module sklearn.impute, utilisée pour traiter les valeurs manquantes dans les ensembles de données. import pandas as pd importe la bibliothèque pandas en tant que pd, facilitant la création et la manipulation de structures de données comme les DataFrames.

    Création d’un DataFrame avec des valeurs manquantes

    Un dictionnaire data est défini avec trois colonnes : Nom, Âge et Ville. Certaines de ces colonnes contiennent des valeurs None, représentant des données manquantes.

    df = pd.DataFrame(data) convertit ce dictionnaire en un DataFrame nommé df.

    Imputation des valeurs manquantes avec la moyenne

    SimpleImputer(strategy='mean') crée un objet imputer qui remplacera les valeurs manquantes par la moyenne des valeurs existantes dans les colonnes numériques.

    La méthode fit_transform() est appliquée à la colonne 'Âge' à l’aide de df[['Âge']], ce qui renvoie une nouvelle version de cette colonne avec les valeurs manquantes remplacées par la moyenne des valeurs présentes.

    Le résultat est réassigné à df['Âge'], mettant à jour la colonne du DataFrame avec les nouvelles valeurs.

    Afficher le DataFrame après imputation

    La fonction print(df) affiche le contenu du DataFrame après traitement, permettant de vérifier que l’imputation a été correctement effectuée sur la colonne Âge.