【正解】A
【0からの解説】
①前提知識:BigQuery ML は、BigQuery 上で SQL(CREATE MODEL 文)だけを使って機械学習モデルを作成・トレーニング・推論できる機能です。データを BigQuery の外に移動する必要がなく、BigQuery のサーバーレスな処理基盤の上で動くため、大量のデータでもスケールします。BigQuery ML には時系列予測専用のモデル(model_type = 'ARIMA_PLUS' や 'ARIMA_PLUS_XREG'。最近は事前学習済みの TimesFM モデルも利用可能)があり、トレンド・季節性(日次・週次・年次など)・祝日効果・異常値などを自動で検出してモデルに反映します。時系列モデルの予測値は ML.FORECAST 関数で、指定した期間(horizon)だけ未来の値として取得でき、信頼区間も同時に出力されます。また、time_series_id_col を指定すると、商品ごとに別々の時系列を 1 つの CREATE MODEL 文でまとめて学習できるため、「多種多様な商品」の需要予測に向いています。
②要件の整理:「将来の需要を予測(=時間軸に沿った未来の値の予測)」「季節性と過去のデータを考慮」「スケーラブル」「データは既に BigQuery にある」の 4 点です。
③正解の理由:A の BigQuery ML の時系列モデルは、季節性を自動で分解・モデル化する時系列予測専用の手法で、データを移動せずに SQL だけで構築でき、ML.FORECAST で将来の予測値を新しいテーブルに書き出せます。すべての要件を最小の労力で満たす、Google が推奨する方法です。
【誤りの選択肢】
B:Colab Enterprise のノートブックで Python のカスタムモデルを作ることは技術的には可能ですが、データの読み出し、季節性を扱う特徴量の設計、モデル実装、スケーリングをすべて自前で行う必要があり、労力と運用負荷が大きくなります。BigQuery ML に時系列予測モデルが用意されている以上、最適な選択ではありません。
C:線形回帰は数値を予測するモデルですが、時系列データの自己相関や季節性、トレンドの変化を自動では扱いません。季節性を反映させるには月や曜日などの特徴量を自分で設計する必要があり、また ML.PREDICT は入力行に対する予測であって、未来の期間を指定して予測値を生成する ML.FORECAST のような時系列予測にはなりません。
D:ロジスティック回帰は「購入する/しない」のようなカテゴリ(クラス)を予測する分類モデルです。需要量という連続的な数値を予測する用途には適しておらず、季節性も考慮しません。
【参考】
予測の概要時系列予測モデルのエンドツーエンドのユーザー ジャーニーBigQuery の ML の概要