Grupowanie godzin odlotu
Dane dotyczące pory dnia bywają problematyczne w modelach regresji. Świetnie nadają się jednak do grupowania w przedziały.
W tym ćwiczeniu przekształcisz godziny odlotu z wartości liczbowych z zakresu od 0 (odpowiadającego 00:00) do 24 (odpowiadającego 24:00) na wartości pogrupowane w przedziały. Następnie zastosujesz do nich kodowanie one-hot.
To ćwiczenie jest częścią kursu
Uczenie maszynowe z PySpark
Instrukcje do ćwiczenia
- Utwórz obiekt klasy
Bucketizerz granicami przedziałów 0, 3, 6, …, 24, odpowiadającymi godzinom 0:00, 03:00, 06:00, …, 24:00. Ustaw kolumnę wejściową nadepart, a wyjściową nadepart_bucket. - Pogrupuj godziny odlotu w zbiorze danych
flights. Wyświetl pięć pierwszych wartości kolumndepartidepart_bucket. - Utwórz obiekt kodera one-hot, wskazując
depart_bucketjako kolumnę wejściową idepart_dummyjako kolumnę wyjściową. - Dopasuj koder do pogrupowanych danych, a następnie użyj go do przekształcenia tych danych na zmienne binarne. Wyświetl pięć pierwszych wartości kolumn
depart,depart_bucketidepart_dummy.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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.____('____', '____', '____').____(____)