Aan de slagGa gratis aan de slag

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

  1. De functie KNN() uit fancyimpute gebruiken om de ontbrekende waarden in de ordinaal gecodeerde DataFrame users te imputeren.
  2. 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

Cursus bekijken

Oefeninstructies

  • Imputeer de DataFrame users met de fit_transform()-methode van KNN_imputer. Rond deze getransformeerde waarden af om gehele getallen te krijgen.
  • Itereer over de kolommen in users.
  • Selecteer de OrdinalEncoder() van de kolom uit ordinal_enc_dict en voer .inverse_transform() uit op de opnieuw gevormde array reshaped.

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] = ___
Code bewerken en uitvoeren