IniziaInizia gratis

Imputazione KNN di valori categorici

Una volta che tutte le colonne categoriche nel DataFrame sono state convertite in valori ordinali, il DataFrame è pronto per l'imputazione. L'imputazione con modelli statistici come K-Nearest Neighbors (KNN) fornisce risultati migliori.

In questo esercizio:

  1. Usa la funzione KNN() di fancyimpute per imputare i valori mancanti nel DataFrame users codificato in modo ordinale.
  2. Converte i valori ordinali di nuovo nelle rispettive categorie usando il metodo .inverse_transform() dell'ordinal encoder.

Ricorda: ordinal_enc_dict memorizza l'OrdinalEncoder() di sklearn per ciascuna colonna. Il DataFrame users contiene i valori codificati (valori ordinali) per ogni colonna.

La funzione KNN(), il dizionario degli OrdinalEncoder() ordinal_enc_dict e il DataFrame users sono già stati caricati per te.

Questo esercizio fa parte del corso

Gestire i dati mancanti in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Imputa il DataFrame users usando il metodo fit_transform() di KNN_imputer. Questi valori trasformati vengono arrotondati per ottenere interi.
  • Itera sulle colonne di users.
  • Seleziona l'OrdinalEncoder() della colonna da ordinal_enc_dict ed esegui .inverse_transform() sull'array reshaped (rimodellato).

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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] = ___
Modifica ed esegui il codice