Бакетизація
Якщо ви володієте житлом, для вас дуже важливо, чи має будинок 1, 2, 3 або 4 спальні. Але, як і з ванними кімнатами, після певної межі вже не так важливо, чи їх 7 чи 8. У цьому прикладі ми розглянемо, як визначити зручні порогові значення для групування в бакети.
Ця вправа є частиною курсу
Опрацювання ознак у PySpark
Інструкції до вправи
- Побудуйте графік розподілу для датафрейму
pandassample_df, використавшиSeaborndistplot(). - Оскільки видно довгий „хвіст" рідкісних значень після 5, створіть бакет
splitsдля 1, 2, 3, 4, 5+. - Створіть перетворювач
buck, ініціалізувавшиBucketizer()із цими межами для задання бакетів, потім вкажіть вхідну колонкуBEDROOMSі вихідну колонкуbedrooms. - Застосуйте перетворення Bucketizer до
dfза допомогоюtransform()і запишіть результат у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']].____()