Aan de slagBegin gratis

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

Bekijk cursus

Oefeninstructies

  • Maak een distributieplot van de pandas-dataframe sample_df met Seaborn distplot().
  • Omdat het lijkt alsof er na 5 een lange staart met weinig voorkomende waarden is, maak je de bucket-splits van 1, 2, 3, 4, 5+
  • Maak de transformer buck door Bucketizer() te initialiseren met de splits om de buckets te bepalen, stel vervolgens de invoerkolom in als BEDROOMS en de uitvoerkolom als bedrooms.
  • Pas de Bucketizer-transformatie toe op df met transform() en wijs het resultaat toe aan df_bucket. Controleer daarna de resultaten met show()

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']].____()
Code bewerken en uitvoeren