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
- Använda funktionen
KNN()frånfancyimputeför att imputera de saknade värdena i den ordinalt kodade DataFrame:nusers. - 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
Övningsinstruktioner
- Imputera DataFrame:n
usersmed hjälp avKNN_imputer:sfit_transform()-metod. De transformerade värdena avrundas för att ge heltal. - Iterera över kolumnerna i
users. - Välj kolumnens
OrdinalEncoder()frånordinal_enc_dictoch utför.inverse_transform()på den omformade arrayenreshaped.
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] = ___