arrow_back

BigQuery ML を使ってみる

参加 ログイン
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

BigQuery ML を使ってみる

Lab 45分 universal_currency_alt No cost show_chart 入門
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP247

Google Cloud セルフペース ラボ

概要

BigQuery ML を使用すると、BigQuery で SQL クエリを使用して ML モデルを作成し、実行できます。ここでは、SQL のユーザーが簡単に ML を利用できるようにすることを目標としています。使い慣れたツールを使用してモデルを構築でき、データ移動の必要もないため、開発スピードを向上させることができます。

Google Merchandise Store に関する多数の Google アナリティクス レコードが格納された e コマース データセットが新たに BigQuery に読み込まれ、利用可能になっています。このラボでは、このデータを使用して訪問者が取引を実行するかどうかを予測するモデルを作成します。

学習内容

このラボでは、BigQuery で ML モデルを作成、評価、使用する方法について学びます。

前提条件

学習効果を最大限に高めるためには、SQL または BigQuery の基礎的な知識を身につけておく必要があります。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。

このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
  • ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントへの追加料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。

  4. [ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。

    重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  5. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後このタブで Cloud Console が開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 ナビゲーション メニュー アイコン

BigQuery コンソールを開く

  1. Google Cloud コンソールで、ナビゲーション メニュー > [BigQuery] を選択します。

[Cloud コンソールの BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスには、クイックスタート ガイドとリリースノートへのリンクが表示されます。

  1. [完了] をクリックします。

BigQuery コンソールが開きます。

タスク 1. データセットを作成する

  1. データセットを作成するには、プロジェクト ID の横にある [アクションを表示] アイコンをクリックし、[データセットを作成] を選択します。

[データセットを作成] オプション

  1. 次に、[データセット ID] の名前を「bqml_lab」にして、[データセットを作成] をクリックします。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。

BigQuery データセットを作成する

タスク 2. モデルを作成する

次に進みましょう。

  1. BigQuery エディタ に移動し、次のクエリを貼り付けるか入力して、訪問者が取引を行うかどうかを予測するモデルを作成します。
#standardSQL CREATE OR REPLACE MODEL `bqml_lab.sample_model` OPTIONS(model_type='logistic_reg') AS SELECT IF(totals.transactions IS NULL, 0, 1) AS label, IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(geoNetwork.country, "") AS country, IFNULL(totals.pageviews, 0) AS pageviews FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20160801' AND '20170631' LIMIT 100000;
  1. [実行] をクリックします。

ここでは、取引が行われたかどうかの基準として、訪問者のデバイスのオペレーティング システム、そのデバイスがモバイル デバイスであるかどうか、訪問者の国、ページビューの回数が使用されます。

ここで、bqml_lab はデータセットの名前、sample_model はモデルの名前です。指定されたモデルタイプは 2 項ロジスティック回帰です。label はフィッティングの対象です。

注: 必要な列が 1 つだけの場合には、この「label」という列が対象になるため、input_label_cols を設定しなくて済みます。

トレーニング データは、2016 年 8 月 1 日から 2017 年 6 月 30 日の間に収集されたものに限定しています。これは「予測」用に最後の月のデータを残しておくためです。さらに、時間の節約のため 100,000 データポイントに制限します。

CREATE MODEL コマンドを実行すると非同期で実行されるクエリジョブが作成されるため、BigQuery UI ウィンドウを閉じたり、更新したりといったことができます。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。

訪問者の取引を予測するモデルを作成する

(省略可)モデル情報とトレーニング統計

興味があれば、UI で bqml_lab データセットを開いて sample_model モデルをクリックすると、モデルに関する情報が得られます。[詳細] タブに、モデルの生成に使用される基本的なモデル情報とトレーニング オプションが表示されます。[トレーニング] タブには、[表示形式] の設定に応じてテーブルまたはグラフが表示されます。

トレーニング テーブル

トレーニング グラフ

タスク 3. モデルを評価する

  • 前のクエリを以下に置き換え、[実行] をクリックします。
#standardSQL SELECT * FROM ml.EVALUATE(MODEL `bqml_lab.sample_model`, ( SELECT IF(totals.transactions IS NULL, 0, 1) AS label, IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(geoNetwork.country, "") AS country, IFNULL(totals.pageviews, 0) AS pageviews FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170801'));

線形回帰モデルで使用した場合、上記のクエリは以下の列を返します。

  • mean_absolute_errormean_squared_errormean_squared_log_error
  • median_absolute_errorr2_scoreexplained_variance

ロジスティック回帰モデルで使用した場合、上記のクエリは以下の列を返します。

  • precisionrecall
  • accuracyf1_score
  • log_lossroc_auc

各指標の算出方法や意味を理解するには、ML の用語集をご覧になるか、Google 検索をご利用ください。

クエリの SELECTFROM の部分はトレーニング中に使用したものと同じであることがわかります。WHERE の部分は期間の違いを反映し、FROM の部分は ml.EVALUATE の呼び出しを示しています。

以下のような表が表示されます。

ロジスティック回帰モデルのクエリ結果

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。

モデルを評価する

タスク 4. モデルを使用する

国ごとの購入数を予測する

このクエリでは、各国の訪問者による取引の数を予測し、結果を並べ替えて、購入数の上位 10 か国を抽出します。

  • 前のクエリを以下に置き換え、[実行] をクリックします。
#standardSQL SELECT country, SUM(predicted_label) as total_predicted_purchases FROM ml.PREDICT(MODEL `bqml_lab.sample_model`, ( SELECT IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(totals.pageviews, 0) AS pageviews, IFNULL(geoNetwork.country, "") AS country FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170801')) GROUP BY country ORDER BY total_predicted_purchases DESC LIMIT 10;

このクエリは、前のセクションで示した評価クエリと非常によく似ています。ml.EVALUATE の代わりに、ml.PREDICT を使用し、クエリの BQML の部分は標準 SQL コマンドでラップされています。このラボでは、国とその国の購入の合計が必要なので、SELECTGROUP BYORDER BY を使用します。LIMIT は結果を上位 10 件に制限するために使用しています。

以下のような表が表示されます。

10 か国とその国の購入数の合計予測が各行にリストされている表

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。

国ごとの購入数を予測する

ユーザーごとの購入数を予測する

もう一つ例を示します。今度は、各訪問者による取引の数を予測し、結果をソートして、取引数の上位 10 人の訪問者を抽出します。

  • 前のクエリを以下に置き換え、[実行] をクリックします。
#standardSQL SELECT fullVisitorId, SUM(predicted_label) as total_predicted_purchases FROM ml.PREDICT(MODEL `bqml_lab.sample_model`, ( SELECT IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(totals.pageviews, 0) AS pageviews, IFNULL(geoNetwork.country, "") AS country, fullVisitorId FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170801')) GROUP BY fullVisitorId ORDER BY total_predicted_purchases DESC LIMIT 10;

以下のような表が表示されます。

10 人の訪問者の fullVisitorId とその購入数の合計予測が各行にリストされている表

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。

ユーザーごとの購入数を予測する

タスク 5. 理解度を確認する

今回のラボで学習した内容の理解を深めていただくため、以下の選択式問題を用意しました。正解を目指して頑張ってください。

お疲れさまでした

これでセルフペース ラボ「BigQuery ML を使ってみる」は終了です。2 項ロジスティック回帰モデルを作成し、モデルを評価し、モデルを使用して予測を行いました。

クエストを完了する

このセルフペース ラボは、「BigQuery for Machine Learning」クエストの一部です。クエストとは学習プログラムを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。こちらのクエストに登録すると、すぐにクレジットを受け取ることができます。受講可能な全クエストについては、Google Cloud Skills Boost カタログをご覧ください。

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2023 年 8 月 23 日

ラボの最終テスト日: 2023 年 8 月 23 日

Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。