Abflugzeiten in Buckets einteilen
Tageszeitdaten sind für Regressionsmodelle eine Herausforderung. Gleichzeitig eignen sie sich sehr gut fürs Bucketing.
In dieser Lektion wandelst du die Abflugzeiten der Flüge von numerischen Werten zwischen 0 (entspricht 00:00) und 24 (entspricht 24:00) in diskrete Bins um. Diese binned Werte kodierst du anschließend per One-Hot-Encoding.
Diese Übung ist Teil des Kurses
Maschinelles Lernen mit PySpark
Anleitung zur Übung
- Erstelle ein Bucketizer-Objekt mit Bin-Grenzen bei 0, 3, 6, …, 24, entsprechend den Zeiten 0:00, 03:00, 06:00, …, 24:00. Gib die Eingabespalte als
departund die Ausgabespalte alsdepart_bucketan. - Teile die Abflugzeiten in den
flights-Daten in Buckets ein. Zeige die ersten fünf Werte fürdepartunddepart_bucket. - Erstelle ein One-Hot-Encoder-Objekt und gib
depart_bucketals Eingabespalte unddepart_dummyals Ausgabespalte an. - Fitte den Encoder auf die gebucketen Daten und verwende ihn anschließend, um diese Daten in Dummy-Variablen umzuwandeln. Zeige die ersten fünf Werte für
depart,depart_bucketunddepart_dummy.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
from pyspark.ml.feature import Bucketizer, OneHotEncoder
# Create buckets at 3 hour intervals through the day
buckets = ____(splits=[____], inputCol='____', outputCol='____')
# Bucket the departure times
bucketed = buckets.____(____)
bucketed.____('____', '____').____(____)
# Create a one-hot encoder
onehot = ____(inputCols=['____'], outputCols=['____'])
# One-hot encode the bucketed departure times
flights_onehot = ____.____(____).____(____)
flights_onehot.____('____', '____', '____').____(____)