Raggruppare l'orario di partenza in bucket
I dati sull’ora del giorno sono una sfida per i modelli di regressione. Allo stesso tempo sono ottimi candidati per il bucketing.
In questa lezione convertirai gli orari di partenza dei voli da valori numerici tra 0 (corrispondente a 00:00) e 24 (corrispondente a 24:00) in valori raggruppati in bucket. Poi trasformerai questi bucket in variabili one-hot.
Questo esercizio fa parte del corso
Machine Learning con PySpark
Istruzioni dell'esercizio
- Crea un oggetto bucketizer con confini dei bucket a 0, 3, 6, …, 24 che corrispondono agli orari 0:00, 03:00, 06:00, …, 24:00. Specifica la colonna di input come
departe la colonna di output comedepart_bucket. - Suddividi in bucket gli orari di partenza nei dati
flights. Mostra i primi cinque valori perdepartedepart_bucket. - Crea un oggetto one-hot encoder, specificando
depart_bucketcome colonna di input edepart_dummycome colonna di output. - Adatta (fit) l'encoder ai dati suddivisi in bucket e poi usalo per trasformare questi dati in variabili dummy. Mostra i primi cinque valori per
depart,depart_bucketedepart_dummy.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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.____('____', '____', '____').____(____)