Бакетизація часу вильоту
Дані про час доби створюють складнощі для регресійних моделей. Водночас це чудовий кандидат для бакетизації.
У цьому уроці ви перетворите часи вильоту рейсів із числових значень у діапазоні від 0 (відповідає 00:00) до 24 (відповідає 24:00) на значення за інтервалами. Потім ви перетворите ці інтервали на one-hot подання.
Ця вправа є частиною курсу
Machine Learning з PySpark
Інструкції до вправи
- Створіть об'єкт bucketizer із межами інтервалів 0, 3, 6, …, 24, що відповідають часам 0:00, 03:00, 06:00, …, 24:00. Вкажіть вхідну колонку як
depart, а вихідну — якdepart_bucket. - Розбийте на інтервали часи вильоту в даних
flights. Покажіть перші п'ять значень дляdepartіdepart_bucket. - Створіть об'єкт one-hot encoder, вказавши
depart_bucketяк вхідну колонку, аdepart_dummy— як вихідну. - Навчіть енкодер на даних після бакетизації, а потім використайте його, щоб перетворити ці дані на змінні-індикатори. Покажіть перші п'ять значень для
depart,depart_bucketіdepart_dummy.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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.____('____', '____', '____').____(____)