Vertex Forecast を使ってノーコードでモデル作成、時系列予測をする方法を徹底解説(後編)

前回「Vertex Forecast を使ってノーコードでモデル作成、時系列予測をする方法を徹底解説(前編)」の続きです。

Vertex Forecast を使った予測の全体の流れは、①トレーニング(モデル作成)、②バッチ予測、③予実比較・評価で、前回は①までお話ししました。

今回は、以下②③について解説していきます。

①トレーニング(モデル作成)
1. トレーニング用、テスト用、テスト答え用のデータセットを作る
2. Vertex AI に トレーニング用のデータセットを取り込む
3. トレーニング用を使って Vertex Forecast でトレーニング(モデル作成)を行う

②バッチ予測
上記で作成したモデルと、テスト用データセットを使ってバッチ予測を行う

③予実比較・評価
上記で作成された予測結果と、テスト答え用データセットを使って予実の比較、評価を行う

※グラフ化は Looker Studio が使いやすいです。

②バッチ予測

①で作成したモデルと、テスト用データセット(表2)を使ってバッチ予測を行います。
Vertex AIのメニューで「バッチ予測」を選択し、「作成」

バッチ予測名は適当に自分がわかるように入力します。
モデル名、バージョンで、①で作成したモデルとバージョンを選択します。
ソースは①の最初でBigQuery上に作成したデータセットのテスト用(表2)を選択します。
出力先は、テーブルのフルパスを指定するとなぜかエラーになるので、「プロジェクトID.データセットID」まで入力します。

出力されるテーブル名は「predictions_2023_03_02T16_43_53_990Z_100」みたいな感じになってしまいますので、この予測結果がどのモデル、どのテスト用データと紐づいているのかは別途メモっておく必要があります。。。
これなんとかしてほしい、、誰かいい方法知ってたら教えてください(涙)

モデルのモニタリングは省略で、「作成」をおすとバッチ予測が始まります。

データ量にもよるかもしれませんが、大体、30〜40分程度で終わります。

③予実比較・評価

上記で作成された予測結果と、テスト答え用データセットを使って予実の比較、評価を行う
※グラフ化は Looker Studio が使いやすいです。

バッチ予測が完了すると、Vertex AIからメール通知が届きます。リンクを押してもいいし、Vertex AI のメニューの「バッチ予測」から選択することもできます。

このバッチ予測の詳細画面の上部に、「データポータルでバッチ予測の結果を可視化します」と出ているのですが、この右側の「詳細を表示」リンクをおすとLooker Studio(旧データポータル)に飛ばされます。

すると、大体完成されたレポートがデフォルトで表示されます。

赤線が予測値、青線が実績値なのですが、青線はテスト用データセットの実績値がnullのため0に張り付いています。なお、グラフでは日別の予測値の合計が表示されていますが、time_series_identifire_col(時系列識別子列=店舗コード)を選択することで店舗別の予実を確認することができます。

この辺をこれから修正していきます。

「編集して共有」を押し、

クエリが表示されるので、ここで予測結果のテーブル名(predictions_XXXX…)をメモします。
(バッチ予測の詳細画面には載ってないので注意!)

「同意して保存する」で保存しておきます。

すると、以下のような編集画面になるので、「リソース」>「追加済みのデータソースの管理」を選択。

「編集」をクリック

カスタムクエリのFROM句のテーブル名を、BigQueryのテスト答え用データセット(表3)のテーブル名に変更し、右上の「再接続」を押してもどる。

ここまでやると、ひとまず予測値と実績値を折れ線グラフで確認することができます。

グラフにしてみると、「どこで大きく外しているのか」など MAE(評価指標)だけみていてもわからないようなことが見えてきます。
ここから先は、モデルの改良でもう少し専門的なことをやっていかなければならないので割愛します。

長くなってしまいましたが、ここまで読んでいただいた方には、Vertex Forecast を使ってノーコードで時系列モデルの作成、予測、予実評価までする方法をお伝えできたかなと思います。

こうして書いてみると大変そうに見えるかもしれませんが、実際に手を動かすのは最初のデータセット作成と、最後の予実比較のグラフ作成くらいなので、それでこのレベルのモデル作成や予実比較ができるのはものすごく楽だと思います。

ちなみに私はモデル作成のたびにデータセットを作り直すのが面倒なので、トレーニング、テスト用、テスト答え用の3テーブルの作成も BigQuery Scripting で半自動化して、さらに楽をしていました。

やっている内容は違いますが、BigQuery Scripting を使った別記事もあるのでよかったら読んでみてください。

時系列データ同士(複数可)の波形の類似度を BigQuery のクエリ一発で計算する方法

まとめ

  • Vertex Forecast を使えば、ノーコードでモデル作成、時系列予測をすることができる
  • 用意するデータセットは、トレーニング用、テスト用、テスト答え用の3テーブル
  • モデル作成(トレーニング)が完了した時点で、モデルの評価(MAEなど)や説明因子の重要度を確認することができる
  • 予実の比較は Looker Studio でグラフ化して確認することができる