Regrouper l’heure de départ en classes
Les heures de la journée posent un défi pour les modèles de régression. Elles sont aussi d’excellentes candidates pour un regroupement en classes (bucketing).
Dans cette leçon, vous allez convertir les heures de départ des vols, actuellement des valeurs numériques entre 0 (correspondant à 00:00) et 24 (correspondant à 24:00), en valeurs regroupées par intervalles. Vous utiliserez ensuite ces classes pour effectuer un one‑hot encoding.
Cet exercice fait partie du cours
Apprentissage automatique avec PySpark
Instructions
- Créez un objet bucketizer avec des bornes d’intervalles à 0, 3, 6, …, 24, qui correspondent aux heures 0:00, 03:00, 06:00, …, 24:00. Indiquez la colonne d’entrée
departet la colonne de sortiedepart_bucket. - Regroupez les heures de départ dans les données
flights. Affichez les cinq premières valeurs dedepartetdepart_bucket. - Créez un objet one‑hot encoder en spécifiant
depart_bucketcomme colonne d’entrée etdepart_dummycomme colonne de sortie. - Ajustez l’encodeur sur les données regroupées puis utilisez‑le pour transformer ces données en variables indicatrices. Affichez les cinq premières valeurs de
depart,depart_bucketetdepart_dummy.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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.____('____', '____', '____').____(____)