시작하기무료로 시작하기

버킷화(Bucketing)

주택 소유자라면 침실이 1개인지, 2개인지, 3개인지, 4개인지가 매우 중요해요. 하지만 욕실 수와 마찬가지로 어떤 지점을 넘어서면 집에 침실이 7개인지 8개인지는 크게 신경 쓰지 않게 됩니다. 이 예제에서는 좋은 기준점을 찾아 버킷으로 묶는 방법을 살펴보겠습니다.

이 연습은 강의의 일부입니다

PySpark로 하는 Feature Engineering

강의 보기

연습 안내

  • Seaborndistplot()을 사용해 pandas 데이터프레임 sample_df의 분포를 그려 보세요.
  • 5 이후에 드물게 나타나는 값들이 긴 꼬리를 이루는 것처럼 보이므로, 1, 2, 3, 4, 5+ 구간의 버킷 splits를 만드세요.
  • 버킷을 설정할 splitsBucketizer()를 생성해 변환기 buck을 만들고, 입력 컬럼은 BEDROOMS, 출력 컬럼은 bedrooms로 설정하세요.
  • transform()으로 df에 Bucketizer 변환을 적용해 결과를 df_bucket에 할당하세요. 그런 다음 show()로 결과를 확인하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

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']].____()
코드 편집 및 실행