Kategorik değerlerin KNN ile ataması
DataFrame'deki tüm kategorik sütunlar sıralı (ordinal) değerlere dönüştürüldüğünde, DataFrame atamaya hazır hale gelir. K-Nearest Neighbors (KNN) gibi istatistiksel modellere dayalı atama, daha iyi sonuçlar sağlar.
Bu egzersizde,
fancyimputeiçindekiKNN()fonksiyonunu kullanarak, sıralı olarak kodlanmışusersDataFrame'indeki eksik değerleri ata.- Sıralı değerleri, sırasıyla ait oldukları kategorilere ordinal kodlayıcının
.inverse_transform()yöntemiyle geri çevir.
Unutma, ordinal_enc_dict her sütun için sklearn'ün OrdinalEncoder() nesnesini saklar.
users DataFrame'i her sütun için kodlanmış (ordinal) değerleri tutar.
KNN() fonksiyonu, OrdinalEncoder() sözlüğü ordinal_enc_dict ve users DataFrame'i senin için zaten yüklendi.
Bu egzersiz, kursun bir parçasıdır
Python'da Eksik Verilerle Çalışma
Egzersiz talimatları
usersDataFrame'iniKNN_imputer'ınfit_transform()yöntemiyle ata. Bu dönüştürülmüş değerleri tam sayı elde etmek için yuvarla.usersiçindeki sütunlar üzerinde yinele.- Sütuna ait
OrdinalEncoder()'ıordinal_enc_dictiçinden seç ve yeniden şekillendirilmişreshapeddizi üzerinde.inverse_transform()uygula.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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] = ___