Разбиение времени вылета на интервалы
Данные о времени суток представляют определённую сложность для регрессионных моделей, однако отлично подходят для разбиения на интервалы.
В этом уроке вы преобразуете время вылета рейсов из числовых значений в диапазоне от 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.____('____', '____', '____').____(____)