Zacznij terazZacznij za darmo

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:

  1. Użyj funkcji KNN() z biblioteki fancyimpute, aby uzupełnić brakujące wartości w kodowanym porządkowo DataFrame users.
  2. 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

Zobacz kurs

Instrukcje do ćwiczenia

  • Dokonaj imputacji DataFrame users, używając metody fit_transform() obiektu KNN_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łownika ordinal_enc_dict i wykonaj metodę .inverse_transform() na przekształconej tablicy reshaped.

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] = ___
Edytuj i uruchom kod