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
- Menggunakan fungsi
KNN()darifancyimputeuntuk mengimputasi nilai hilang pada DataFrame berkode ordinalusers. - 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
Petunjuk latihan
- Imputasi DataFrame
usersmenggunakan metodefit_transform()dariKNN_imputer. Nilai hasil transformasi ini dibulatkan untuk mendapatkan bilangan bulat. - Lakukan iterasi pada kolom-kolom di
users. - Pilih
OrdinalEncoder()milik kolom tersebut dariordinal_enc_dictdan lakukan.inverse_transform()pada arrayreshapedyang 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] = ___