始める無料で始める

出発時刻のバケット化

一日の時刻データは回帰モデルでは扱いが難しい一方で、バケット化にとても向いています。

このレッスンでは、フライトの出発時刻を 0(00:00 に対応)から 24(24:00 に対応)までの数値から、区間に分けたバケット値へ変換します。さらに、そのバケット値を one-hot エンコードします。

この演習はコースの一部です

Machine Learning with PySpark

コースを見る

演習の手順

  • 0, 3, 6, …, 24(0:00、03:00、06:00、…, 24:00 に対応)を境界に持つ bucketizer オブジェクトを作成します。入力列は depart、出力列は depart_bucket と指定します。
  • flights データの出発時刻をバケット化します。departdepart_bucket の先頭5件を表示します。
  • one-hot encoder オブジェクトを作成し、入力列に depart_bucket、出力列に depart_dummy を指定します。
  • エンコーダをバケット化したデータに fit() し、その後このデータをダミー変数に変換するために transform() を使います。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.____('____', '____', '____').____(____)
コードを編集して実行