MulaiMulai sekarang secara gratis

Imputasi KNN untuk nilai kategorikal

Setelah semua kolom kategorikal dalam DataFrame dikonversi menjadi nilai ordinal, DataFrame siap untuk diimputasi. Melakukan imputasi menggunakan model statistik seperti K-Nearest Neighbors (KNN) memberikan imputasi yang lebih baik.

Pada latihan ini, Anda akan

  1. Menggunakan fungsi KNN() dari fancyimpute untuk mengimputasi nilai hilang pada DataFrame berkode ordinal users.
  2. Mengonversi kembali nilai ordinal ke kategorinya masing-masing menggunakan metode .inverse_transform() dari ordinal encoder.

Ingat, ordinal_enc_dict menyimpan OrdinalEncoder() dari sklearn untuk setiap kolom. DataFrame users menyimpan nilai yang telah dikodekan (nilai ordinal) untuk setiap kolom.

Fungsi KNN(), kamus OrdinalEncoder() ordinal_enc_dict dan DataFrame users telah dimuat untuk Anda.

Latihan ini adalah bagian dari kursus

Menangani Data Hilang di Python

Lihat Kursus

Petunjuk latihan

  • Imputasi DataFrame users menggunakan metode fit_transform() dari KNN_imputer. Nilai hasil transformasi ini dibulatkan untuk mendapatkan bilangan bulat.
  • Lakukan iterasi pada kolom-kolom di users.
  • Pilih OrdinalEncoder() milik kolom tersebut dari ordinal_enc_dict dan lakukan .inverse_transform() pada array reshaped yang telah diubah bentuknya.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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] = ___
Edit dan Jalankan Kode