Kovalama (Bucketing)
Bir ev sahibiysen, bir evin 1, 2, 3 ya da 4 yatak odalı olması çok önemlidir. Ama banyolarda olduğu gibi, belli bir noktadan sonra evin 7 mi 8 mi yatak odası olduğunun pek önemi kalmaz. Bu örnekte, hangi değer noktalarının kovalamak (bucket) için iyi adaylar olduğunu nasıl belirleyeceğine bakacağız.
Bu egzersiz, kursun bir parçasıdır
PySpark ile Özellik Mühendisliği
Egzersiz talimatları
pandasveri çerçevesisample_dfiçinSeaborndistplot()kullanarak bir dağılım grafiği çiz.- 5’ten sonra seyrek değerlerden oluşan uzun bir kuyruk olduğu göründüğüne göre, 1, 2, 3, 4, 5+ kovalarını oluşturmak için
splitslistesini yarat. - Kovaları ayarlamak için
Bucketizer()’ı busplitsile başlatıp dönüştürücübuck’ı oluştur; ardından giriş sütununuBEDROOMS, çıkış sütununubedroomsolarak ayarla. transform()iledfüzerine Bucketizer dönüşümünü uygula ve sonucudf_bucketolarak ata. Sonrasındashow()ile sonuçları doğrula.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
from pyspark.ml.feature import Bucketizer
# Plot distribution of sample_df
sns.____(____, axlabel='BEDROOMS')
plt.show()
# Create the bucket splits and bucketizer
splits = [____, ____, ____, ____, ____, ____, float('Inf')]
buck = ____(splits=____, inputCol=____, outputCol=____)
# Apply the transformation to df: df_bucket
df_bucket = ____.____(____)
# Display results
df_bucket[['BEDROOMS', 'bedrooms']].____()