Agrupando horário de partida em faixas (Bucketing)
Dados de hora do dia são um desafio para modelos de regressão. Eles também são ótimos candidatos para bucketing.
Nesta lição, você vai converter os horários de partida dos voos de valores numéricos entre 0 (correspondente a 00:00) e 24 (correspondente a 24:00) para valores em faixas. Em seguida, vai pegar essas faixas e aplicar one-hot encoding.
Este exercício faz parte do curso
Machine learning com PySpark
Instruções do exercício
- Crie um objeto bucketizer com limites de faixa em 0, 3, 6, …, 24, que correspondem aos horários 0:00, 03:00, 06:00, …, 24:00. Especifique a coluna de entrada como
departe a coluna de saída comodepart_bucket. - Agrupe em faixas os horários de partida nos dados
flights. Mostre os cinco primeiros valores dedepartedepart_bucket. - Crie um objeto one-hot encoder, especificando
depart_bucketcomo a coluna de entrada edepart_dummycomo a coluna de saída. - Faça o fit do codificador aos dados agrupados e depois use-o para transformar esses dados em variáveis dummy. Mostre os cinco primeiros valores de
depart,depart_bucketedepart_dummy.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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.____('____', '____', '____').____(____)