始める無料で始める

勾配ブースティング木:予測

モデルを実行したら、次のステップは予測を行うことです。ベース R では predict() 関数を使って予測しますが、sparklyr では ml_predict() 関数を使います。ml_predict() は、モデルとテストデータの 2 つの引数を受け取ります。

ml_predict(a_model, testing_data)

よくある使い方として、予測値と実際の値を比較し、R でグラフを描画する方法があります。そのためのデータ準備のコードパターンは以下のとおりです。なお、現時点では予測列の追加はローカルで行う必要があるため、先に結果を収集しておく必要があります。

predicted_vs_actual <- testing_data %>%
  select(actual) %>%
  collect() %>%
  mutate(predicted)

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

sparklyr を使った Spark 入門(R)

コースを見る

演習の手順

Spark への接続は spark_conn として事前に作成されています。Spark に保存されたトレーニングデータとテストデータに紐付けられたティブルは、それぞれ track_data_to_model_tbltrack_data_to_predict_tbl として定義済みです。勾配ブースティング木モデルは gradient_boosted_trees_model として定義済みです。

  • テストデータに対するモデルの予測結果を格納する変数 predicted を定義しましょう。
    • モデルとテストデータを引数として ml_predict() を呼び出します。この関数はテストデータセットに対して予測を生成し、prediction という名前の新しい列として追加します。
    • pull() を使ってこの列を取り出し、predicted に代入します。
  • 予測値と実際の値を比較するためのデータを準備する変数 responses を定義しましょう。
    • レスポンス列 year を選択します。
    • 結果を収集します。
    • mutate() を使って、predicted で作成した予測値を追加します。

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

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

# Training, testing sets & model are pre-defined
track_data_to_model_tbl
track_data_to_predict_tbl
gradient_boosted_trees_model

# Predict the responses for the testing data
predicted <- ___(
      ___,
      ___) %>% pull(prediction)

# Prepare the data for comparing predicted responses with actual responses
responses <- track_data_to_predict_tbl %>%
  # Select the response column
  ___ %>%
  # Collect the results
  ___ %>%
  # Add in the predictions
  mutate(___)
コードを編集して実行