KNN-imputatie van categorische waarden
Zodra alle categorische kolommen in de DataFrame zijn omgezet naar ordinale waarden, is de DataFrame klaar om te imputeren. Imputeren met statistische modellen zoals K-Nearest Neighbors (KNN) levert betere imputaties op.
In deze oefening ga je
- De functie
KNN()uitfancyimputegebruiken om de ontbrekende waarden in de ordinaal gecodeerde DataFrameuserste imputeren. - De ordinale waarden terugzetten naar hun categorieën met de
.inverse_transform()-methode van de ordinal encoder.
Onthoud: ordinal_enc_dict slaat voor elke kolom de OrdinalEncoder() van sklearn op.
De DataFrame users bevat de gecodeerde (ordinale) waarden per kolom.
De functie KNN(), de dictionary met OrdinalEncoder()s ordinal_enc_dict en de users-DataFrame zijn al voor je ingeladen.
Deze oefening maakt deel uit van de cursus
Omgaan met ontbrekende gegevens in Python
Oefeninstructies
- Imputeer de DataFrame
usersmet defit_transform()-methode vanKNN_imputer. Rond deze getransformeerde waarden af om gehele getallen te krijgen. - Itereer over de kolommen in
users. - Selecteer de
OrdinalEncoder()van de kolom uitordinal_enc_dicten voer.inverse_transform()uit op de opnieuw gevormde arrayreshaped.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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] = ___