LoslegenKostenlos starten

Bucketizing

Wenn du Hausbesitzer bist, ist es sehr wichtig, ob ein Haus 1, 2, 3 oder 4 Schlafzimmer hat. Aber ähnlich wie bei Badezimmern: Ab einem bestimmten Punkt ist es egal, ob das Haus 7 oder 8 hat. In diesem Beispiel schauen wir uns an, wie man gute Grenzwerte findet, um in Buckets einzuteilen.

Diese Übung ist Teil des Kurses

<Kurs>Feature Engineering mit PySpark</Kurs>
Kurs ansehen

Übungsanweisungen

  • Zeichne ein Verteilungsdiagramm des pandas-DataFrames sample_df mit Seaborn distplot().
  • Da es so aussieht, als gäbe es nach 5 einen langen Ausreißerbereich seltener Werte, erstelle die Bucket-splits 1, 2, 3, 4, 5+
  • Erzeuge den Transformer buck, indem du Bucketizer() mit den Splits zum Festlegen der Buckets instanzierst, setze dann die Eingabespalte auf BEDROOMS und die Ausgabespalte auf bedrooms.
  • Wende die Bucketizer-Transformation auf df mit transform() an und speichere das Ergebnis in df_bucket. Überprüfe anschließend die Ergebnisse mit show()

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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 bearbeiten und ausführen