CommencerCommencer gratuitement

Imputation KNN de valeurs catégorielles

Une fois que toutes les colonnes catégorielles du DataFrame ont été converties en valeurs ordinales, le DataFrame est prêt à être imputé. L’imputation à l’aide de modèles statistiques comme K-Nearest Neighbors (KNN) fournit de meilleurs résultats.

Dans cet exercice, vous allez :

  1. Utiliser la fonction KNN() de fancyimpute pour imputer les valeurs manquantes dans le DataFrame encodé ordinalement users.
  2. Reconvertir les valeurs ordinales en leurs catégories respectives à l’aide de la méthode .inverse_transform() de l’encodeur ordinal.

Rappel : ordinal_enc_dict stocke le OrdinalEncoder() de sklearn pour chaque colonne. Le DataFrame users stocke les valeurs encodées (valeurs ordinales) pour chaque colonne.

La fonction KNN(), le dictionnaire d’OrdinalEncoder() ordinal_enc_dict et le DataFrame users ont déjà été chargés pour vous.

Cet exercice fait partie du cours

Gérer les données manquantes en Python

Afficher le cours

Instructions

  • Imputez le DataFrame users à l’aide de la méthode fit_transform() de KNN_imputer. Arrondissez les valeurs transformées pour obtenir des entiers.
  • Itérez sur les colonnes de users.
  • Sélectionnez l’OrdinalEncoder() de la colonne depuis ordinal_enc_dict et appliquez .inverse_transform() sur le tableau redimensionné reshaped.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Create KNN imputer
KNN_imputer = KNN()

# Impute 'users' DataFrame. It is rounded to get integer values
users_KNN_imputed.iloc[:, :] = np.round(___)

# Loop over the column names in 'users'
for col_name in ___:
    
    # Reshape the column data
    reshaped = users_KNN_imputed[col_name].values.reshape(-1, 1)
    
    # Select the column's Encoder and perform inverse transform on 'reshaped'
    users_KNN_imputed[col_name] = ___
Modifier et exécuter le code