Gruppindelning (Bucketing)
Som husköpare spelar det stor roll om ett hus har 1, 2, 3 eller 4 sovrum. Men liksom med badrum – efter en viss punkt bryr man sig inte längre om huset har 7 eller 8. I det här exemplet undersöker vi hur man hittar lämpliga värdegränser för att dela in data i grupper.
Den här övningen är en del av kursen
Feature Engineering med PySpark
Övningsinstruktioner
- Rita ett fördelningsdiagram över
pandas-dataramensample_dfmed hjälp avSeaborndistplot(). - Eftersom det verkar finnas en lång svans med ovanliga värden efter 5, skapa uppdelningsgränserna
splitsför 1, 2, 3, 4, 5+ - Skapa transformatorn
buckgenom att instansieraBucketizer()medsplitsför att ange grupperna, ange sedan indatakolumnen somBEDROOMSoch utdatakolumnen sombedrooms. - Tillämpa Bucketizer-transformationen på
dfmedtransform()och tilldela resultatet tilldf_bucket. Verifiera sedan resultaten medshow().
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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']].____()