Aan de slagGa gratis aan de slag

Vertrekken in tijdsvakken (bucketing)

Gegevens over tijdstip van de dag zijn lastig voor regressiemodellen. Ze lenen zich ook uitstekend voor bucketing.

In deze les zet je de vertrektijden van vluchten om van numerieke waarden tussen 0 (komt overeen met 00:00) en 24 (komt overeen met 24:00) naar ingedeelde (binned) waarden. Vervolgens neem je die binned waarden en pas je one-hot encoding toe.

Deze oefening maakt deel uit van de cursus

Machine Learning met PySpark

Cursus bekijken

Oefeninstructies

  • Maak een bucketizer-object met vakgrenzen op 0, 3, 6, …, 24, die overeenkomen met tijden 00:00, 03:00, 06:00, …, 24:00. Geef depart op als inputkolom en depart_bucket als outputkolom.
  • Deel de vertrektijden in de flights-gegevens in buckets in. Toon de eerste vijf waarden voor depart en depart_bucket.
  • Maak een one-hot encoder-object, met depart_bucket als inputkolom en depart_dummy als outputkolom.
  • Fit de encoder op de gebucketiseerde gegevens en gebruik die vervolgens om deze gegevens om te zetten naar dummyvariabelen. Toon de eerste vijf waarden voor depart, depart_bucket en depart_dummy.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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