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:
- Usa la funzione
KNN()difancyimputeper imputare i valori mancanti nel DataFrameuserscodificato in modo ordinale. - 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
Istruzioni dell'esercizio
- Imputa il DataFrame
usersusando il metodofit_transform()diKNN_imputer. Questi valori trasformati vengono arrotondati per ottenere interi. - Itera sulle colonne di
users. - Seleziona l'
OrdinalEncoder()della colonna daordinal_enc_dicted esegui.inverse_transform()sull'arrayreshaped(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] = ___