Indelen in buckets
Als je een huiseigenaar bent, is het heel belangrijk of een huis 1, 2, 3 of 4 slaapkamers heeft. Maar net als bij badkamers maakt het, zodra je een bepaald punt bereikt, niet echt meer uit of het huis er 7 of 8 heeft. In dit voorbeeld kijken we hoe je goede grenswaarden kunt bepalen om in buckets in te delen.
Deze oefening maakt deel uit van de cursus
Feature Engineering met PySpark
Oefeninstructies
- Maak een distributieplot van de
pandas-dataframesample_dfmetSeaborndistplot(). - Omdat het lijkt alsof er na 5 een lange staart met weinig voorkomende waarden is, maak je de bucket-
splitsvan 1, 2, 3, 4, 5+ - Maak de transformer
buckdoorBucketizer()te initialiseren met de splits om de buckets te bepalen, stel vervolgens de invoerkolom in alsBEDROOMSen de uitvoerkolom alsbedrooms. - Pas de Bucketizer-transformatie toe op
dfmettransform()en wijs het resultaat toe aandf_bucket. Controleer daarna de resultaten metshow()
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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']].____()