Phân nhóm (bucketing) giờ cất cánh
Dữ liệu thời điểm trong ngày là một thách thức với các mô hình hồi quy. Nhưng đây cũng là ứng viên rất phù hợp để phân nhóm (bucketing).
Trong bài này, bạn sẽ chuyển thời gian cất cánh của chuyến bay từ giá trị số trong khoảng 0 (tương ứng 00:00) đến 24 (tương ứng 24:00) sang các giá trị theo nhóm (bins). Sau đó, bạn sẽ one-hot encode các giá trị theo nhóm này.
Bài tập này là một phần của khóa học
Machine Learning với PySpark
Hướng dẫn bài tập
- Tạo một đối tượng bucketizer với ranh giới các nhóm tại 0, 3, 6, …, 24 tương ứng với các mốc thời gian 0:00, 03:00, 06:00, …, 24:00. Chỉ định cột đầu vào là
departvà cột đầu ra làdepart_bucket. - Phân nhóm thời gian cất cánh trong dữ liệu
flights. Hiển thị 5 giá trị đầu tiên chodepartvàdepart_bucket. - Tạo một đối tượng one-hot encoder, chỉ định
depart_bucketlàm cột đầu vào vàdepart_dummylàm cột đầu ra. - Fit encoder trên dữ liệu đã phân nhóm, sau đó dùng nó để biến đổi dữ liệu này thành biến giả (dummy). Hiển thị 5 giá trị đầu tiên cho
depart,depart_bucketvàdepart_dummy.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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.____('____', '____', '____').____(____)