Pembungkusan (Bucketing)
Jika Anda seorang pemilik rumah, jumlah kamar tidur 1, 2, 3, atau 4 sangat penting. Namun seperti kamar mandi, setelah mencapai titik tertentu Anda tidak terlalu peduli apakah rumah memiliki 7 atau 8. Pada contoh ini, kita akan melihat cara menentukan titik nilai yang baik untuk membuat bucket.
Latihan ini adalah bagian dari kursus
Rekayasa Fitur dengan PySpark
Petunjuk latihan
- Buat plot distribusi dari
pandasdataframesample_dfmenggunakanSeaborndistplot(). - Karena tampaknya ada ekor panjang dari nilai yang jarang setelah 5, buat
splitsbucket 1, 2, 3, 4, 5+ - Buat transformer
buckdengan menginstansiasiBucketizer()beserta splits untuk menetapkan bucket, lalu set kolom masukan sebagaiBEDROOMSdan kolom keluaran sebagaibedrooms. - Terapkan transformasi Bucketizer pada
dfmenggunakantransform()dan simpan hasilnya kedf_bucket. Kemudian verifikasi hasilnya denganshow()
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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']].____()