Začněte nyníZačněte zdarma

KNN imputace kategorických hodnot

Jakmile jsou všechny kategorické sloupce v DataFrame převedeny na ordinální hodnoty, je DataFrame připravený k imputaci. Imputace pomocí statistických modelů, jako je K-nejbližších sousedů (KNN), poskytuje přesnější výsledky.

V tomto cvičení:

  1. Použiješ funkci KNN() z knihovny fancyimpute k imputaci chybějících hodnot v ordinálně zakódovaném DataFrame users.
  2. Převedeš ordinální hodnoty zpět na původní kategorie pomocí metody .inverse_transform() ordinálního enkodéru.

Pamatuj, že ordinal_enc_dict uchovává OrdinalEncoder() z knihovny sklearn pro každý sloupec. DataFrame users uchovává zakódované (ordinální) hodnoty pro každý sloupec.

Funkce KNN(), slovník enkodérů ordinal_enc_dict a DataFrame users jsou již načteny.

Toto cvičení je součástí kurzu

Dealing with Missing Data in Python

Zobrazit kurz

Pokyny k cvičení

  • Imputuj DataFrame users pomocí metody fit_transform() objektu KNN_imputer. Transformované hodnoty se zaokrouhlí na celá čísla.
  • Projdi sloupce v DataFrame users v cyklu.
  • Ze slovníku ordinal_enc_dict vyber OrdinalEncoder() příslušného sloupce a proveď .inverse_transform() na přetvarovaném poli reshaped.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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] = ___
Upravit a spustit kód