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)

    Explication du code :

    Un DataFrame est créé avec des valeurs manquantes.
    
    L'instance SimpleImputer est initialisée avec la stratégie mean, ce qui signifie que les valeurs manquantes dans les colonnes numériques seront remplacées par la moyenne de chaque colonne. La méthode fit_transform() applique cette imputation aux colonnes spécifiées.
    
    Dans le deuxième exemple, la stratégie constant est utilisée pour remplacer les valeurs manquantes dans la colonne Nom par la valeur 'Inconnu'.
    
    La fonction fit_transform() ajuste l'imputer sur les données et effectue l'imputation en une seule étape. Le paramètre strategy peut être modifié pour utiliser différentes stratégies selon le cas d'usage.