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í:
- Použiješ funkci
KNN()z knihovnyfancyimputek imputaci chybějících hodnot v ordinálně zakódovaném DataFrameusers. - 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
Pokyny k cvičení
- Imputuj DataFrame
userspomocí metodyfit_transform()objektuKNN_imputer. Transformované hodnoty se zaokrouhlí na celá čísla. - Projdi sloupce v DataFrame
usersv cyklu. - Ze slovníku
ordinal_enc_dictvyberOrdinalEncoder()příslušného sloupce a proveď.inverse_transform()na přetvarovaném polireshaped.
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] = ___