НачатьНачать бесплатно

Разбиение времени вылета на интервалы

Данные о времени суток представляют определённую сложность для регрессионных моделей, однако отлично подходят для разбиения на интервалы.

В этом уроке вы преобразуете время вылета рейсов из числовых значений в диапазоне от 0 (соответствует 00:00) до 24 (соответствует 24:00) в дискретные интервалы. Затем вы применитe к этим интервалам кодирование методом прямого кодирования (one-hot encoding).

Это упражнение является частью курса

Машинное обучение с PySpark

Посмотреть курс

Инструкции к упражнению

  • Создайте объект Bucketizer с границами интервалов 0, 3, 6, …, 24, соответствующими временным меткам 0:00, 03:00, 06:00, …, 24:00. Укажите входной столбец depart и выходной столбец depart_bucket.
  • Разбейте время вылета в наборе данных flights на интервалы. Выведите первые пять значений столбцов depart и depart_bucket.
  • Создайте объект кодировщика прямого кодирования, указав 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.____('____', '____', '____').____(____)
Редактировать и запускать код