Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Défi : Imputation des Valeurs Manquantes | Prétraitement des Données avec Scikit-learn
Introduction au ML Avec Scikit-Learn

bookDéfi : Imputation des Valeurs Manquantes

La classe SimpleImputer est conçue pour gérer les données manquantes en remplaçant automatiquement les valeurs absentes.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Lors de son initialisation, elle peut également être personnalisée en définissant ses paramètres :

  • missing_value : spécifie le marqueur utilisé pour les valeurs manquantes. Par défaut, il s'agit de np.nan ;
  • strategy : la stratégie utilisée pour imputer les valeurs manquantes. 'mean' est la valeur par défaut ;
  • fill_value : spécifie la valeur à utiliser pour remplir les valeurs manquantes lorsque la strategy est 'constant'. Par défaut, cette valeur est None.

En tant que transformateur, elle dispose des méthodes suivantes :

Il est également nécessaire de décider quelles valeurs utiliser pour l'imputation.

Une approche courante consiste à remplacer les valeurs numériques manquantes par la moyenne et les valeurs catégorielles manquantes par la modalité (valeur la plus fréquente), car cela déforme minimalement la distribution des données.

Le choix est contrôlé par le paramètre strategy :

  • strategy='mean' : imputation par la moyenne de chaque colonne ;
  • strategy='median' : imputation par la médiane de chaque colonne ;
  • strategy='most_frequent' : imputation par la modalité de chaque colonne ;
  • strategy='constant' : imputation par une valeur constante spécifiée dans le paramètre fill_value.

Le paramètre missing_values définit quelles valeurs sont considérées comme manquantes. Par défaut, il s'agit de NaN, mais dans certains jeux de données, cela peut être une chaîne vide '' ou un autre marqueur.

Note
Remarque

Les SimpleImputer et de nombreux autres transformateurs ne fonctionnent qu'avec des DataFrames, et non avec des Series pandas. La sélection d'une seule colonne d'un DataFrame avec df['column'] retourne une Series. Pour éviter cela, vous pouvez utiliser une double paire de crochets df[['column']] afin de garantir le retour d'un DataFrame :

imputer.fit_transform(df[['column']])

Lorsque la méthode .fit_transform() de SimpleImputer est appliquée, elle retourne un tableau 2D. L'affectation de valeurs à une seule colonne dans un DataFrame pandas nécessite un tableau 1D (ou une Series).

df['column'] = ...  # Requires 1D array or Series
imputer.fit_transform(df[['column']])  # Produces 2D array

La méthode .ravel() peut être utilisée pour aplatir le tableau en 1D avant l'affectation :

df['column'] = imputer.fit_transform(df[['column']]).ravel()

Cela garantit que les valeurs imputées sont correctement formatées et stockées dans la colonne du DataFrame.

Tâche

Swipe to start coding

Imputer les valeurs manquantes dans la colonne 'sex' en utilisant SimpleImputer. Puisqu'il s'agit d'une colonne catégorielle, remplacez les valeurs NaN par la valeur la plus fréquente.

  1. Importer SimpleImputer.
  2. Créer un objet SimpleImputer avec la strategy souhaitée.
  3. Imputer les valeurs manquantes de la colonne 'sex' à l'aide de l'objet imputer.

Solution

Excellent ! Nous avons traité le problème des valeurs manquantes dans notre jeu de données. Nous avons supprimé les lignes contenant plus d'une valeur nulle et imputé la colonne 'sex' avec la valeur la plus fréquente – MALE.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 4
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

close

Awesome!

Completion rate improved to 3.13

bookDéfi : Imputation des Valeurs Manquantes

Glissez pour afficher le menu

La classe SimpleImputer est conçue pour gérer les données manquantes en remplaçant automatiquement les valeurs absentes.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Lors de son initialisation, elle peut également être personnalisée en définissant ses paramètres :

  • missing_value : spécifie le marqueur utilisé pour les valeurs manquantes. Par défaut, il s'agit de np.nan ;
  • strategy : la stratégie utilisée pour imputer les valeurs manquantes. 'mean' est la valeur par défaut ;
  • fill_value : spécifie la valeur à utiliser pour remplir les valeurs manquantes lorsque la strategy est 'constant'. Par défaut, cette valeur est None.

En tant que transformateur, elle dispose des méthodes suivantes :

Il est également nécessaire de décider quelles valeurs utiliser pour l'imputation.

Une approche courante consiste à remplacer les valeurs numériques manquantes par la moyenne et les valeurs catégorielles manquantes par la modalité (valeur la plus fréquente), car cela déforme minimalement la distribution des données.

Le choix est contrôlé par le paramètre strategy :

  • strategy='mean' : imputation par la moyenne de chaque colonne ;
  • strategy='median' : imputation par la médiane de chaque colonne ;
  • strategy='most_frequent' : imputation par la modalité de chaque colonne ;
  • strategy='constant' : imputation par une valeur constante spécifiée dans le paramètre fill_value.

Le paramètre missing_values définit quelles valeurs sont considérées comme manquantes. Par défaut, il s'agit de NaN, mais dans certains jeux de données, cela peut être une chaîne vide '' ou un autre marqueur.

Note
Remarque

Les SimpleImputer et de nombreux autres transformateurs ne fonctionnent qu'avec des DataFrames, et non avec des Series pandas. La sélection d'une seule colonne d'un DataFrame avec df['column'] retourne une Series. Pour éviter cela, vous pouvez utiliser une double paire de crochets df[['column']] afin de garantir le retour d'un DataFrame :

imputer.fit_transform(df[['column']])

Lorsque la méthode .fit_transform() de SimpleImputer est appliquée, elle retourne un tableau 2D. L'affectation de valeurs à une seule colonne dans un DataFrame pandas nécessite un tableau 1D (ou une Series).

df['column'] = ...  # Requires 1D array or Series
imputer.fit_transform(df[['column']])  # Produces 2D array

La méthode .ravel() peut être utilisée pour aplatir le tableau en 1D avant l'affectation :

df['column'] = imputer.fit_transform(df[['column']]).ravel()

Cela garantit que les valeurs imputées sont correctement formatées et stockées dans la colonne du DataFrame.

Tâche

Swipe to start coding

Imputer les valeurs manquantes dans la colonne 'sex' en utilisant SimpleImputer. Puisqu'il s'agit d'une colonne catégorielle, remplacez les valeurs NaN par la valeur la plus fréquente.

  1. Importer SimpleImputer.
  2. Créer un objet SimpleImputer avec la strategy souhaitée.
  3. Imputer les valeurs manquantes de la colonne 'sex' à l'aide de l'objet imputer.

Solution

Excellent ! Nous avons traité le problème des valeurs manquantes dans notre jeu de données. Nous avons supprimé les lignes contenant plus d'une valeur nulle et imputé la colonne 'sex' avec la valeur la plus fréquente – MALE.

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

close

Awesome!

Completion rate improved to 3.13
Section 2. Chapitre 4
single

single

some-alt