ПочатиПочніть безкоштовно

Бакетизація часу вильоту

Дані про час доби створюють складнощі для регресійних моделей. Водночас це чудовий кандидат для бакетизації.

У цьому уроці ви перетворите часи вильоту рейсів із числових значень у діапазоні від 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.____('____', '____', '____').____(____)
Редагувати та запускати код