Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Rita ett fördelningsdiagram över pandas-dataramen sample_df med hjälp av Seaborn distplot().
  • Eftersom det verkar finnas en lång svans med ovanliga värden efter 5, skapa uppdelningsgränserna splits för 1, 2, 3, 4, 5+
  • Skapa transformatorn buck genom att instansiera Bucketizer() med splits för att ange grupperna, ange sedan indatakolumnen som BEDROOMS och utdatakolumnen som bedrooms.
  • Tillämpa Bucketizer-transformationen på df med transform() och tilldela resultatet till df_bucket. Verifiera sedan resultaten med show().

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']].____()
Redigera och kör kod