Rozdělení času odletu do intervalů
Denní čas je v regresních modelech trochu oříšek. Zároveň je to ideální kandidát pro rozdělení do intervalů (bucketing).
V této lekci převedeš časy odletů z číselných hodnot v rozsahu 0 (odpovídá 00:00) až 24 (odpovídá 24:00) do binovaných hodnot. Ty pak zakódujete metodou one-hot encoding.
Toto cvičení je součástí kurzu
Machine Learning with PySpark
Pokyny k cvičení
- Vytvoř objekt bucketizeru s hranicemi intervalů 0, 3, 6, …, 24, které odpovídají časům 0:00, 03:00, 06:00, …, 24:00. Jako vstupní sloupec zadej
departa jako výstupnídepart_bucket. - Rozděl časy odletů v datech
flightsdo intervalů. Zobraz prvních pět hodnot pro sloupcedepartadepart_bucket. - Vytvoř objekt one-hot enkodéru — jako vstupní sloupec zadej
depart_bucketa jako výstupnídepart_dummy. - Natrénuj enkodér na binovaných datech a pomocí něj je transformuj na dummy proměnné. Zobraz prvních pět hodnot pro sloupce
depart,depart_bucketadepart_dummy.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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.____('____', '____', '____').____(____)