始める無料で始める

フライト時間モデル・パイプラインのクロスバリデーション

先ほど作成したクロスバリデーション付きモデルは、km のみを使って duration を予測するシンプルなものでした。

フライト時間のもう一つの重要な予測変数は出発空港です。混雑した空港では離陸までに時間がかかる傾向があります。予測変数を追加するとモデルが良くなるか見てみましょう!

この演習では、モデルに org フィールドを追加します。ただし、org はカテゴリ変数なので、そのままでは使えません。まずインデックス化し、その後ワンホットエンコードして、km と一緒にアセンブルしてから回帰モデルを構築します。これらの処理はパイプラインでまとめます。

次のオブジェクトはすでに用意されています:

  • params — 空のパラメーターグリッド
  • evaluator — 回帰用の評価器
  • regressionlabelCol='duration' を指定した LinearRegression オブジェクト

StringIndexerOneHotEncoderVectorAssemblerCrossValidator クラスはすでにインポートされています。

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

Machine Learning with PySpark

コースを見る

演習の手順

  • 文字列インデクサを作成します。入力と出力のフィールドをそれぞれ orgorg_idx に指定します。
  • ワンホットエンコーダを作成します。出力フィールド名は org_dummy にします。
  • kmorg_dummy を 1 つのフィールド features にアセンブルします。
  • 次の処理を順に行うパイプラインを作成し、これを使ってクロスバリデータを作成します:文字列インデクサ、ワンホットエンコーダ、アセンブラ、線形回帰。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Create an indexer for the org field
indexer = ____(____, ____)

# Create an one-hot encoder for the indexed org field
onehot = ____(____, ____)

# Assemble the km and one-hot encoded fields
assembler = ____(____, ____)

# Create a pipeline and cross-validator.
pipeline = ____(stages=[____, ____, ____, ____])
cv = ____(estimator=____,
          estimatorParamMaps=____,
          evaluator=____)
コードを編集して実行