ÎncepețiÎncepe gratuit

Imputarea valorilor categoriale cu KNN

După ce toate coloanele categoriale din DataFrame au fost convertite la valori ordinale, DataFrame-ul este pregătit pentru imputare. Imputarea cu modele statistice precum K-Nearest Neighbors (KNN) oferă rezultate mai precise.

În acest exercițiu vei:

  1. Folosi funcția KNN() din fancyimpute pentru a imputa valorile lipsă din DataFrame-ul codat ordinal users.
  2. Converti valorile ordinale înapoi la categoriile corespunzătoare, folosind metoda .inverse_transform() a codorului ordinal.

Reține că ordinal_enc_dict stochează câte un OrdinalEncoder() din sklearn pentru fiecare coloană, iar DataFrame-ul users conține valorile codate (valorile ordinale) pentru fiecare coloană.

Funcția KNN(), dicționarul de OrdinalEncoder()-uri ordinal_enc_dict și DataFrame-ul users au fost deja încărcate pentru tine.

Acest exercițiu face parte din cursul

Gestionarea datelor lipsă în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Imputează DataFrame-ul users folosind metoda fit_transform() a obiectului KNN_imputer. Valorile transformate sunt rotunjite pentru a obține numere întregi.
  • Iterează peste coloanele din users.
  • Selectează OrdinalEncoder()-ul coloanei din ordinal_enc_dict și aplică .inverse_transform() pe array-ul redimensionat reshaped.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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] = ___
Editează și rulează codul