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

Düşük Gözleme Sahip Sütunları Kaldırma

Bolca özellik mühendisliği yaptıktan sonra bir adım geri çekilip ne oluşturduğuna bakmak iyi bir fikirdir. Kategorik özelliklerinde explode veya OneHot Encoding gibi bazı otomasyon tekniklerini kullandıysan, şimdi yüzlerce yeni ikili özellik elde etmiş olabilirsin. Özellik seçimi başlı başına başka bir dersin konusu olsa da, veri kümenin boyutunu azaltmak için atabileceğin bazı hızlı adımlar var.

Bu egzersizde, 30 gözlemden az olan sütunları kaldıracağız. 30, istatistiksel anlamlılık için yaygın bir alt sınırdır. Bundan daha azı olduğunda, ilişkiler salt tesadüften aşırı uyumlamaya yol açabilir!

NOT: Veriler df veri çerçevesinde (dataframe) mevcuttur.

Bu egzersiz, kursun bir parçasıdır

PySpark ile Özellik Mühendisliği

Kursa Göz Atın

Egzersiz talimatları

  • İkili sütunlar listesini dolaşan verilen for döngüsünü kullanarak, sütundaki değerlerin sum değerini agg fonksiyonuyla hesapla. Hesabı hemen çalıştırmak için collect() kullan ve sonucu obs_count değişkenine kaydet.
  • obs_count ile obs_threshold değerlerini karşılaştır; if ifadesi, obs_count obs_threshold değerinden küçük ya da ona eşit olduğunda doğru olmalıdır.
  • cols_to_remove listesine eklenmiş sütunları drop() kullanarak kaldır. * operatörünün listenin açılmasını (unpack) sağladığını unutma.
  • PySpark veri çerçevelerinin başlangıç ve bitiş şeklini, kayıt sayısı için count() ve sütun sayısını bulmak için df.columns veya new_df.columns üzerinde len() kullanarak yazdır.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

obs_threshold = 30
cols_to_remove = list()
# Inspect first 10 binary columns in list
for col in binary_cols[0:10]:
  # Count the number of 1 values in the binary column
  obs_count = df.____({col: ____}).____()[0][0]
  # If less than our observation threshold, remove
  if ____ ____ ____:
    cols_to_remove.append(col)
    
# Drop columns and print starting and ending dataframe shapes
new_df = df.____(*____)

print('Rows: ' + str(df.____()) + ' Columns: ' + str(____(df.____)))
print('Rows: ' + str(new_df.____()) + ' Columns: ' + str(____(new_df.____)))
Kodu Düzenle ve Çalıştır