最良のフライト時間モデルを分解して理解する
先ほど、フライト時間を予測する線形回帰モデルの良いハイパーパラメータを探すために、CrossValidator を設定しました。
モデルのパイプラインは複数のステージ(StringIndexer、OneHotEncoder、VectorAssembler、LinearRegression 型のオブジェクト)で構成され、順番に実行されます。ステージはパイプラインオブジェクトの stages 属性として取得でき、リストで表され、リストに並んだ順に実行されます。
ここではパイプラインを詳しく確認し、ステージを取り出して、テストデータに対して予測を行います。
次のオブジェクトはすでに作成済みです。
cv— 学習済みのCrossValidatorModelオブジェクトevaluator—RegressionEvaluatorオブジェクト
フライトのデータはランダムに flights_train と flights_test に分割されています。
この演習はコースの一部です
Machine Learning with PySpark
演習の手順
- 最良モデルを取得します。
- 最良モデル内のステージを確認します。
- 線形回帰のステージを取り出し、そのパラメータを抽出します。
- 最良モデルでテストデータに対する予測を生成し、RMSE を計算します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Get the best model from cross validation
best_model = cv.____
# Look at the stages in the best model
print(best_model.____)
# Get the parameters for the LinearRegression object in the best model
best_model.____.extractParamMap()
# Generate predictions on testing data using the best model then calculate RMSE
predictions = ____.____(____)
print("RMSE =", ____.____(____))