เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การทำ Bucketing เวลาออกเดินทาง

ข้อมูลเวลาในแต่ละวันเป็นความท้าทายสำหรับโมเดล Regression และยังเหมาะอย่างยิ่งสำหรับการทำ Bucketing

ในบทเรียนนี้ จะแปลงเวลาออกเดินทางของเที่ยวบินจากค่าตัวเลขระหว่าง 0 (ตรงกับ 00:00) ถึง 24 (ตรงกับ 24:00) ให้เป็นค่าที่แบ่งเป็น Bin แล้วนำค่าเหล่านั้นไปทำ One-Hot Encoding ต่อไป

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Machine Learning with PySpark

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้างออบเจกต์ Bucketizer โดยกำหนดขอบเขตของ Bin ที่ 0, 3, 6, …, 24 ซึ่งตรงกับเวลา 0:00, 03:00, 06:00, …, 24:00 พร้อมระบุคอลัมน์อินพุตเป็น depart และคอลัมน์เอาต์พุตเป็น depart_bucket
  • แบ่ง Bucket เวลาออกเดินทางในข้อมูล flights แล้วแสดงค่า 5 แถวแรกของ depart และ depart_bucket
  • สร้างออบเจกต์ One-Hot Encoder โดยระบุ depart_bucket เป็นคอลัมน์อินพุต และ depart_dummy เป็นคอลัมน์เอาต์พุต
  • Fit Encoder กับข้อมูลที่แบ่ง Bucket แล้ว จากนั้นใช้ Transform ข้อมูลให้เป็น Dummy Variables แล้วแสดงค่า 5 แถวแรกของ 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.____('____', '____', '____').____(____)
แก้ไขและรันโค้ด