Phân nhóm theo khoảng (Bucketing)
Nếu bạn là chủ nhà, việc một căn nhà có 1, 2, 3 hay 4 phòng ngủ là rất quan trọng. Nhưng giống như phòng tắm, sau một ngưỡng nhất định bạn cũng không quá quan tâm việc căn nhà có 7 hay 8 phòng. Trong ví dụ này, chúng ta sẽ xem cách xác định các mốc giá trị hợp lý để phân nhóm theo khoảng.
Bài tập này là một phần của khóa học
Feature Engineering với PySpark
Hướng dẫn bài tập
- Vẽ biểu đồ phân phối của
pandasdataframesample_dfbằngSeaborndistplot(). - Do có vẻ như có một đuôi dài của các giá trị hiếm sau 5, hãy tạo các
splitscho bucket là 1, 2, 3, 4, 5+ - Tạo bộ biến đổi
buckbằng cách khởi tạoBucketizer()với các splits để thiết lập các bucket, sau đó đặt cột đầu vào làBEDROOMSvà cột đầu ra làbedrooms. - Áp dụng phép biến đổi Bucketizer lên
dfbằngtransform()và gán kết quả chodf_bucket. Sau đó kiểm tra kết quả vớishow()
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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']].____()