Imputacja wartości kategorycznych metodą KNN
Gdy wszystkie kolumny kategoryczne w DataFrame zostaną przekonwertowane na wartości porządkowe, zbiór danych będzie gotowy do imputacji. Imputacja z użyciem modeli statystycznych, takich jak K-Nearest Neighbors (KNN), daje lepsze wyniki.
W tym ćwiczeniu:
- Użyj funkcji
KNN()z bibliotekifancyimpute, aby uzupełnić brakujące wartości w kodowanym porządkowo DataFrameusers. - Przekonwertuj wartości porządkowe z powrotem do odpowiadających im kategorii, korzystając z metody
.inverse_transform()kodera porządkowego.
Pamiętaj: słownik ordinal_enc_dict przechowuje obiekty OrdinalEncoder() z biblioteki sklearn dla każdej kolumny, a DataFrame users zawiera zakodowane wartości porządkowe dla każdej kolumny.
Funkcja KNN(), słownik koderów ordinal_enc_dict oraz DataFrame users zostały już wczytane.
To ćwiczenie jest częścią kursu
Braki danych w Pythonie
Instrukcje do ćwiczenia
- Dokonaj imputacji DataFrame
users, używając metodyfit_transform()obiektuKNN_imputer. Przekształcone wartości są zaokrąglane do liczb całkowitych. - Iteruj po kolumnach DataFrame
users. - Wybierz obiekt
OrdinalEncoder()dla danej kolumny ze słownikaordinal_enc_dicti wykonaj metodę.inverse_transform()na przekształconej tablicyreshaped.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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] = ___