開始使用免費開始

起飛時間分箱(Bucketing)

一天中的時間對迴歸模型是一項挑戰,同時也非常適合做分箱處理。

在本練習中,你會把航班的起飛時間,從介於 0(對應 00:00)到 24(對應 24:00)的數值,轉換成分箱後的值。接著再對這些分箱值做 one-hot 編碼。

本練習屬於課程

使用 PySpark 的機器學習

檢視課程

練習說明

  • 建立一個 bucketizer 物件,分箱邊界設為 0、3、6、…、24,分別對應 0:00、03:00、06:00、…、24:00。將輸入欄位指定為 depart,輸出欄位指定為 depart_bucket
  • flights 資料中的起飛時間進行分箱。顯示 departdepart_bucket 的前 5 筆值。
  • 建立一個 one-hot 編碼器物件,將 depart_bucket 指定為輸入欄位,depart_dummy 指定為輸出欄位。
  • 對分箱後的資料擬合該編碼器,然後用它將資料轉換為虛擬變數。顯示 departdepart_bucketdepart_dummy 的前 5 筆值。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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.____('____', '____', '____').____(____)
編輯並執行程式碼