Kom igångKom igång gratis

KNN-imputering av kategoriska värden

När alla kategoriska kolumner i DataFrame har konverterats till ordinala värden är DataFrame redo att imputeras. Imputering med statistiska modeller som K-Nearest Neighbors (KNN) ger bättre resultat.

I den här övningen ska du

  1. Använda funktionen KNN() från fancyimpute för att imputera de saknade värdena i den ordinalt kodade DataFrame:n users.
  2. Konvertera de ordinala värdena tillbaka till respektive kategorier med hjälp av ordinalkodarens .inverse_transform()-metod.

Kom ihåg att ordinal_enc_dict lagrar sklearn:s OrdinalEncoder() för varje kolumn. DataFrame:n users lagrar de kodade värdena (ordinala värden) för varje kolumn.

Funktionen KNN(), ordlistan med OrdinalEncoder():s ordinal_enc_dict och DataFrame:n users har redan laddats in åt dig.

Den här övningen är en del av kursen

Hantera saknade värden i Python

Visa kurs

Övningsinstruktioner

  • Imputera DataFrame:n users med hjälp av KNN_imputer:s fit_transform()-metod. De transformerade värdena avrundas för att ge heltal.
  • Iterera över kolumnerna i users.
  • Välj kolumnens OrdinalEncoder() från ordinal_enc_dict och utför .inverse_transform() på den omformade arrayen reshaped.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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] = ___
Redigera och kör kod