BaşlayınÜcretsiz başlayın

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,

  1. fancyimpute içindeki KNN() fonksiyonunu kullanarak, sıralı olarak kodlanmış users DataFrame'indeki eksik değerleri ata.
  2. 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

Kursa Göz Atın

Egzersiz talimatları

  • users DataFrame'ini KNN_imputer'ın fit_transform() yöntemiyle ata. Bu dönüştürülmüş değerleri tam sayı elde etmek için yuvarla.
  • users içindeki sütunlar üzerinde yinele.
  • Sütuna ait OrdinalEncoder()ordinal_enc_dict içinden seç ve yeniden şekillendirilmiş reshaped dizi ü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] = ___
Kodu Düzenle ve Çalıştır