合計可能な指標を使用して貢献度分析モデルからデータ分析情報を取得する

このチュートリアルでは、貢献度分析モデルを使用して、アイオワ州の酒類販売データセットにおける 2020 年と 2021 年の売上の変化を分析します。このチュートリアルでは、次のタスクの実行について説明します。

  • 一般公開されているアイオワ州の酒類データに基づいて入力テーブルを作成します。
  • 合計可能な指標を使用する貢献度分析モデルを作成します。このタイプのモデルは、データ内の 1 つ以上のディメンションの組み合わせについて特定の指標を要約し、それらのディメンションが指標値にどのように貢献しているかを判断します。
  • ML.GET_INSIGHTS 関数を使用して、モデルから指標の分析情報を取得します。

このチュートリアルを始める前に、貢献度分析のユースケースを理解しておく必要があります。

必要な権限

  • データセットを作成するには、bigquery.datasets.create Identity and Access Management(IAM)権限が必要です。

  • モデルを作成するには、次の権限が必要です。

    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
  • 推論を実行するには、次の権限が必要です。

    • bigquery.models.getData
    • bigquery.jobs.create

費用

このドキュメントでは、課金対象である次の Google Cloudコンポーネントを使用します。

  • BigQuery ML: You incur costs for the data that you process in BigQuery.

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。 新規の Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

BigQuery の料金の詳細については、BigQuery ドキュメントの BigQuery の料金をご覧ください。

始める前に

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the BigQuery API.

    Enable the API

データセットを作成する

ML モデルを保存する BigQuery データセットを作成します。

コンソール

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] ページに移動

  2. [エクスプローラ] ペインで、プロジェクト名をクリックします。

  3. [アクションを表示] > [データセットを作成] をクリックします。

    [データセットを作成] のメニュー オプション。

  4. [データセットを作成] ページで、次の操作を行います。

    • [データセット ID] に「bqml_tutorial」と入力します。

    • [ロケーション タイプ] で [マルチリージョン] を選択してから、[US(米国の複数のリージョン)] を選択します。

    • 残りのデフォルトの設定は変更せず、[データセットを作成] をクリックします。

bq

新しいデータセットを作成するには、--location フラグを指定した bq mk コマンドを使用します。使用可能なパラメータの一覧については、bq mk --dataset コマンドのリファレンスをご覧ください。

  1. データの場所が US に設定され、BigQuery ML tutorial dataset という説明の付いた、bqml_tutorial という名前のデータセットを作成します。

    bq --location=US mk -d \
     --description "BigQuery ML tutorial dataset." \
     bqml_tutorial

    このコマンドでは、--dataset フラグの代わりに -d ショートカットを使用しています。-d--dataset を省略した場合、このコマンドはデフォルトでデータセットを作成します。

  2. データセットが作成されたことを確認します。

    bq ls

API

定義済みのデータセット リソースを使用して datasets.insert メソッドを呼び出します。

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

入力データのテーブルを作成する

分析するテストデータとコントロール データを含むテーブルを作成します。テストテーブルには 2021 年の酒類データが含まれ、コントロール テーブルには 2020 年の酒類データが含まれます。次のクエリは、テストデータとコントロール データを 1 つの入力テーブルに結合します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで、次のステートメントを実行します。

    CREATE OR REPLACE TABLE bqml_tutorial.iowa_liquor_sales_sum_data AS (
      (SELECT
        store_name,
        city,
        vendor_name,
        category_name,
        item_description,
        SUM(sale_dollars) AS total_sales,
        FALSE AS is_test
      FROM `bigquery-public-data.iowa_liquor_sales.sales`
      WHERE EXTRACT(YEAR from date) = 2020
      GROUP BY store_name, city, vendor_name, category_name, item_description, is_test)
      UNION ALL
      (SELECT
        store_name,
        city,
        vendor_name,
        category_name,
        item_description,
        SUM(sale_dollars) AS total_sales,
        TRUE AS is_test
      FROM `bigquery-public-data.iowa_liquor_sales.sales`
      WHERE EXTRACT (YEAR FROM date) = 2021
      GROUP BY store_name, city, vendor_name, category_name, item_description, is_test)
    );

モデルを作成する

貢献度分析モデルを作成します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで、次のステートメントを実行します。

    CREATE OR REPLACE MODEL bqml_tutorial.iowa_liquor_sales_sum_model
      OPTIONS(
        model_type='CONTRIBUTION_ANALYSIS',
        contribution_metric = 'sum(total_sales)',
        dimension_id_cols = ['store_name', 'city', 'vendor_name', 'category_name',
          'item_description'],
        is_test_col = 'is_test',
        min_apriori_support=0.05
      ) AS
    SELECT * FROM bqml_tutorial.iowa_liquor_sales_sum_data;

クエリが完了するまでに約 60 秒かかります。完了後、iowa_liquor_sales_sum_model モデルが [エクスプローラ] ペインの bqml_tutorial データセットに表示されます。このクエリでは CREATE MODEL ステートメントを使用してモデルを作成するため、クエリの結果はありません。

モデルから分析情報を取得する

ML.GET_INSIGHTS 関数を使用して、貢献度分析モデルによって生成された分析情報を取得します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを実行して、合計可能な指標の貢献度分析モデルの出力から列を選択します。

    SELECT
      contributors,
      metric_test,
      metric_control,
      difference,
      relative_difference,
      unexpected_difference,
      relative_unexpected_difference,
      apriori_support,
      contribution
    FROM
      ML.GET_INSIGHTS(
        MODEL `bqml_tutorial.iowa_liquor_sales_sum_model`);

出力の最初の数行は次のようになります。読みやすくするために、値は切り捨てられています。

contributors metric_test metric_control difference relative_difference unexpected_difference relative_unexpected_difference apriori_support contribution
all 428068179 396472956 31595222 0.079 31595222 0.079 1.0 31595222
vendor_name=SAZERAC COMPANY INC 52327307 38864734 13462573 0.346 11491923 0.281 0.122 13462573
city=DES MOINES 49521322 41746773 7774549 0.186 4971158 0.111 0.115 7774549
vendor_name=DIAGEO AMERICAS 84681073 77259259 7421814 0.096 1571126 0.018 0.197 7421814
category_name=100% AGAVE TEQUILA 23915100 17252174 6662926 0.386 5528662 0.3 0.055 6662926

出力は、貢献度(ABS(difference))で降順に自動的に並べ替えられます。all 行の difference 列は、2020 年から 2021 年にかけて総売上が $31,595,222 増加したことを示しています。これは、relative_difference 列に示されているように 7.9% の増加です。2 行目の vendor_name=SAZERAC COMPANY INC では、unexpected_difference が $11,491,923 です。これは、relative_unexpected_difference 列からわかるように、このデータ セグメントの成長率がデータ全体の成長率よりも 28% 高かったことを意味します。詳細については、合計可能な指標の出力列をご覧ください。

クリーンアップ

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.