Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Vẽ biểu đồ phân phối của pandas dataframe sample_df bằng Seaborn distplot().
  • 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 splits cho bucket là 1, 2, 3, 4, 5+
  • Tạo bộ biến đổi buck bằng cách khởi tạo Bucketizer() với các splits để thiết lập các bucket, sau đó đặt cột đầu vào là BEDROOMS và cột đầu ra là bedrooms.
  • Áp dụng phép biến đổi Bucketizer lên df bằng transform() và gán kết quả cho df_bucket. Sau đó kiểm tra kết quả với show()

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']].____()
Chỉnh sửa và Chạy Mã