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égiemean
, ce qui signifie que les valeurs manquantes dans les colonnes numériques seront remplacées par la moyenne de chaque colonne. La méthodefit_transform()
applique cette imputation aux colonnes spécifiées. Dans le deuxième exemple, la stratégieconstant
est utilisée pour remplacer les valeurs manquantes dans la colonneNom
par la valeur'Inconnu'
. La fonctionfit_transform()
ajuste l'imputer sur les données et effectue l'imputation en une seule étape. Le paramètrestrategy
peut être modifié pour utiliser différentes stratégies selon le cas d'usage.