
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Explore the NYC Citi Bike Trips dataset
/ 20
Cleaned training data
/ 20
Training a Model
/ 20
Evaluate the time series model
/ 20
Make Predictions using the model
/ 20
BigQuery は、Google が低価格で提供する NoOps のフルマネージド分析データベースです。テラバイト単位の大規模なデータをクエリすることが可能で、インフラストラクチャを所有して管理したりデータベース管理者を配置したりする必要はありません。
BigQuery の機能である BigQuery ML(BQML)を使用すれば、最小限のコーディングで ML モデルの作成、トレーニング、評価、予測が可能になります。詳しくは、こちらの BigQuery ML の動画をご覧ください。
このラボでは BQML を使用して、複数の商品の需要を予測する時系列モデルを構築する方法を学びます。NYC Citi Bike Trips という一般公開データセットを使用して、過去のデータから次の 30 日間の需要を予測する方法について学習します。自転車を小売の販売商品、自転車ステーションを店舗だと考えてください。
こちらの動画を視聴して、需要予測のサンプル ユースケースを確認してください。
このラボでは、次のタスクの実行方法について学びます。
NYC Citi Bike Trips
に対してクエリを実行して探索する。こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] ペインでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] ペインでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
[Cloud コンソールの BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスには、クイックスタート ガイドとリリースノートへのリンクが表示されます。
BigQuery コンソールが開きます。
ニューヨーク市の自転車の移動に関する一般公開データセットを使用します。 このデータセットには Google Cloud コンソール内の Marketplace でアクセスできます。 BigQuery なら、[エクスプローラ] インターフェースから一般公開データセットに直接アクセスできて簡単です。
[その他のソース] にある [公開データセット] を選択します。
「bikes」で検索して、NYC Citi Bike Trips タイルをクリックします。
問題: ニューヨーク市で自転車を借りられる場所をいくつか挙げてください。
次は、この問題に答えられるようにクエリを実行します。
行 | bikeid | starttime | start_station_name | end_station_name |
---|---|---|---|---|
1 | 18447 | 2013-09-16T19:22:43 | 9 Ave & W 22 St | W 27 St & 7 Ave |
2 | 22598 | 2015-12-30T13:02:38 | E 10 St & 5 Ave | W 11 St & 6 Ave |
3 | 28833 | 2017-09-02T16:27:37 | Washington Pl & Broadway | Lexington Ave & E 29 St |
4 | 21338 | 2017-11-15T06:57:09 | Hudson St & Reade St | Centre St & Chambers St |
5 | 19888 | 2013-11-07T15:12:07 | W 42 St & 8 Ave | W 56 St & 6 Ave |
これは、ニューヨーク市で自転車を借りられるステーションの場所を示すリストです。これで、NYC Citi Bike Trips データセットに対してクエリを実行する方法がわかりました。
BigQuery はデータを通じて問題の答えを得るのに適したツールです。 クエリ構文を学習することで、データを通じて分析情報を取得できるようになります。
今実行したクエリについて考えてみましょう。
別のタイプのクエリを試してみます。データセットをフィルタして、より詳細な情報を表示させた方がよいユースケースもあるかもしれません。
次の例では、BigQuery を使用して期間を指定しています。
次のような結果が返されます。
行 | start_date | start_station_id | total_trips |
---|---|---|---|
1 | 2016-01-27 | 3119 | 15 |
2 | 2016-04-07 | 3140 | 83 |
3 | 2016-08-15 | 254 | 109 |
4 | 2016-05-10 | 116 | 217 |
5 | 2016-07-07 | 268 | 151 |
これで、クエリ結果を期間でフィルタする方法がわかりました。
クエリを作成するにはデータを操作するコマンドの学習が必要です。 2 つ目のクエリでは、日付とステーション名で自転車の利用をグループ化できます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
2 つ目のクエリでは、日付と出発ステーションが同じ行を 1 つにまとめ、その日の自転車の利用数を得ました。このデータはテーブルまたはビューとして保存できます。
次のセクションでは、トレーニング データで次の構造を作ります。
種類 | 名前 |
---|---|
データセット | bqmlforecast |
テーブル | training_data |
bqmlforecast
」と入力します。デフォルトのテーブル最長存続期間
] に 1 日と入力します。これで、自分のデータをホストするデータセットを用意できました。
この時点では作成済みのデータはありません。クエリを実行して結果をテーブルに保存し、この状況を修正します。
IN
句では、トレーニング データを減らすために、モデルに含めるステーションを 5 つだけ選択しています。すべてを含んだモデルをトレーニングするには、このラボよりも多くの時間が必要になります。このクエリはモデルをトレーニングする際の基礎として使用できます。
結果を保存
] を選択します。training_data
」という名前を追加します。[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
次のクエリでは、トレーニング データを使用して ML モデルを作成します。 作成したモデルを使用すると、需要予測を実行できるようになります。
ARIMA
アルゴリズムを使用しています。
利用可能な他のアルゴリズムについては、BigQuery ML のドキュメントをご覧ください。
BigQuery ML で時系列モデルをトレーニングする場合、複数のモデル / コンポーネントがモデル作成パイプラインで使用されます。ARIMA は、BigQuery ML で利用可能なコア アルゴリズムの一つです。
以下、使用されるコンポーネントをおおむね実行される順序で列挙します。
HOLIDAY_REGION
を指定することもできます。祝日効果を有効にすると、祝日に見られる異常な増大と減少が異常として処理されなくなります。利用できる地域の一覧については、ドキュメントの HOLIDAY_REGION
をご覧ください。LOgical regrESSion
(Loess STL)アルゴリズムによる季節変動と長期変動の分解を使用します。二重指数平滑(ETS)アルゴリズムを使用した季節性の推定。赤池
情報量規準(AIC)が最も低いモデルが最適なモデルになります。時系列モデルをトレーニングして 1 つの商品の需要を予測することも、複数の商品の需要を同時に予測することもできます(予測する商品が何千点、何百万点もある場合には非常に便利です)。
複数の商品の需要を同時に予測する場合は、複数のパイプラインが並行して実行されます。
この例では、1 つのモデル作成文で複数のステーションについてモデルをトレーニングしているため、TIME_SERIES_ID_COL
というパラメータを start_station
として指定する必要があります。
1 つのアイテムの需要のみを予測する場合は、TIME_SERIES_ID_COL
を指定する必要はありません。
モデルのトレーニングが正常に完了したら、緑色のチェックマークが表示されます。これで、完成したモデルを使用して予測を実行できます。
モデルのトレーニングにまだ時間がかかっている場合は、こちらの YouTube 動画をご覧ください。別のデータセットを使用して、このラボと同様の需要予測ソリューションを構築してデプロイする方法を説明しています。このラボは一定の時間内に完了する必要があるので、必ず戻ってきてください。
モデルに移動
] をクリックします。今実行したクエリについて考えてみましょう。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
こちらの動画を見て、BigQuery ML における時系列モデルの仕組みを理解してください。
作成したモデルにはクエリを実行できます。前のクエリをベースにして、新しいモデルが利用できるようになりました。ML.EVALUATE
関数を使用すると、作成されたすべてのモデルの評価指標(モデルごとに 1 行)を確認できます。
上のクエリを実行すると、下の画像のような結果が表示されます。
トレーニング データに含まれているステーションごとに 1 つ、合計 5 つのトレーニングされたモデルがあります。
non_seasonal_{p,d,q}
、has_drift
)は、ARIMA モデルの定義です。log_likelihood
、AIC
、variance
)は、ARIMA モデルの適合プロセスに関連するものです。適合プロセスでは、時系列ごとに auto.ARIMA アルゴリズムが使用され、最適な ARIMA モデルが決定されます。 これらの指標のうち、通常は AIC を最もよく使用します。AIC は、時系列モデルがデータにどれだけ適合するかを評価するための指標で、複雑すぎるモデルにはペナルティを与えます。
最後に、5 つのステーションで検出された seasonal_periods
が WEEKLY と YEARLY で定義されています。
別の質問も試してみましょう。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
期間に設定された以降の n 個の値を予測する ML.FORECAST を使用して、予測を行います。
また、予測値が予測区間内に収まる割合である confidence_level
を変更することもできます。
下のコードでは予測期間が「30」となっています。トレーニング データは日次データだったので、これは次の 30 日間の予測を行うことを意味します。
結果を表示
] をクリックします。次のような結果が表示されます。
confidence_level
が与えられた場合の prediction_interval
の上限と下限も表示されます。
SQL スクリプトでは、期間と confidence_level
の入力をパラメータ化できるよう、DECLARE
と EXECUTE IMMEDIATE
を使用しています。
HORIZON
変数と CONFIDENCE_LEVEL
変数を使用すると、後で値をより簡単に調整できるため、コードの可読性と保守性を向上させることができます。この構文の動作について詳しくは、クエリ構文のリファレンスをご覧ください。
今実行したクエリについて考えてみましょう。
上で説明したクエリのほかに、BigQuery ML ではクエリのスケジューリングもサポートされています。スケジュールされたクエリについて詳しくは、スケジュールされたクエリを使用したモデルの再トレーニングのスケジューリングと自動化についての動画をご覧ください。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
シカゴのタクシー運賃の予測など、他のデータセットに対してモデルを作成するには、以下のリンクから、bigquery-public-data を自分のプロジェクトに追加します。
需要予測を実行するための ML モデルを BigQuery で構築できました。
このテーマについてデベロッパー アドボケイト Polong Lin が説明しています。詳しくは以下をご覧ください。
需要予測の別のユースケースを紹介します。
このラボで使用したツールの詳細は以下で確認できます。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 7 月 12 日
ラボの最終テスト日: 2024 年 7 月 12 日
Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください