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
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
departop als inputkolom endepart_bucketals outputkolom. - Deel de vertrektijden in de
flights-gegevens in buckets in. Toon de eerste vijf waarden voordepartendepart_bucket. - Maak een one-hot encoder-object, met
depart_bucketals inputkolom endepart_dummyals 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_bucketendepart_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.____('____', '____', '____').____(____)