使用可求和比率指标从贡献分析模型中获取数据洞见

在本教程中,您将使用贡献分析模型来分析爱荷华州酒类销售数据集中销货成本率的贡献。本教程将指导您完成以下任务:

  • 根据公开的爱荷华州烈酒数据创建输入表。
  • 创建使用可求和比率指标贡献分析模型。此类模型会汇总两个数值列的值,并确定数据的每个细分部分在对照组数据集和测试数据集中的比例差异。
  • 使用 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

创建数据集

创建 BigQuery 数据集以存储您的机器学习模型:

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery 页面

  2. 探索器窗格中,点击您的项目名称。

  3. 点击 查看操作 > 创建数据集

    创建数据集。

  4. 创建数据集页面上,执行以下操作:

    • 数据集 ID 部分,输入 bqml_tutorial

    • 位置类型部分,选择多区域,然后选择 US (multiple regions in United States)(美国[美国的多个区域])。

      公共数据集存储在 US 多区域中。为简单起见,请将数据集存储在同一位置。

    • 保持其余默认设置不变,然后点击创建数据集

      创建数据集页面。

创建输入数据表

创建一个包含要分析的测试数据和对照组数据的表。以下查询会创建两个中间表,一个用于 2021 年烈酒数据的测试表,另一个用于 2020 年烈酒数据的对照表,然后对中间表执行联合操作,以创建一个包含测试行和对照行以及同一组列的表。

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 在查询编辑器中,运行以下语句:

    CREATE OR REPLACE TABLE bqml_tutorial.iowa_liquor_sales_data AS
    (SELECT
      store_name,
      city,
      vendor_name,
      category_name,
      item_description,
      SUM(sale_dollars) AS total_sales,
      SUM(state_bottle_cost) AS total_bottle_cost,
      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,
      SUM(state_bottle_cost) AS total_bottle_cost,
      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.liquor_sales_model
    OPTIONS(
      model_type = 'CONTRIBUTION_ANALYSIS',
      contribution_metric = 'sum(total_bottle_cost)/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_data;

查询大约需要 35 秒才能完成,之后模型 liquor_sales_model 会显示在探索器窗格的 bqml_tutorial 数据集中。由于查询使用 CREATE MODEL 语句来创建模型,因此没有查询结果。

从模型中获取数据洞见

使用 ML.GET_INSIGHTS 函数获取贡献分析模型生成的数据洞见。

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 在查询编辑器中,运行以下语句:

    SELECT
      *
    FROM
      ML.GET_INSIGHTS(
        MODEL `bqml_tutorial.liquor_sales_model`)
    ORDER BY aumann_shapley_attribution DESC;

    输出的前几行应类似于以下内容:

    +---------------------------------------------+------------+--------------+----------------------+---------------------------+------------------+---------------------+---------------------+-------------------------+-----------------------------+--------------------------------+----------------------------+----------------------+
    |                contributors                 | store_name |     city     |     vendor_name      |       category_name       | item_description |     ratio_test      |    ratio_control    | regional_relative_ratio | ambient_relative_ratio_test | ambient_relative_ratio_control | aumann_shapley_attribution |   apriori_support    |
    +---------------------------------------------+------------+--------------+----------------------+---------------------------+------------------+---------------------+---------------------+-------------------------+-----------------------------+--------------------------------+----------------------------+----------------------+
    | ["vendor_name=HEAVEN HILL BRANDS"]          | NULL       | NULL         | HEAVEN HILL BRANDS   | NULL                      | NULL             | 0.06082442061831622 | 0.05884218073008315 |      1.0336873967558387 |          0.8698365450783194 |              0.811596664491199 |      1.5104196544869235E-4 | 0.055361944752340866 |
    | ["category_name=CANADIAN WHISKIES"]         | NULL       | NULL         | NULL                 | CANADIAN WHISKIES         | NULL             | 0.05660065322101707 | 0.05527494446064277 |      1.0239839003604652 |          0.7978770326280865 |             0.7503324937642422 |       9.208157188656863E-5 |  0.09035117733470034 |
    | ["category_name=STRAIGHT BOURBON WHISKIES"] | NULL       | NULL         | NULL                 | STRAIGHT BOURBON WHISKIES | NULL             |  0.0780561336687973 | 0.07963402619292285 |      0.9801856995111244 |          1.1380300531561078 |              1.123518997118609 |      -3.521056388489075E-5 |  0.09069759353047172 |
    | ["vendor_name=JIM BEAM BRANDS"]             | NULL       | NULL         | JIM BEAM BRANDS      | NULL                      | NULL             | 0.07626103548689916 | 0.07922409994920188 |      0.9625989507712601 |          1.1085644148611702 |             1.1170286930895665 |     -1.7964572365978545E-4 |  0.08232281614374977 |
    | ["city=CEDAR RAPIDS"]                       | NULL       | CEDAR RAPIDS | NULL                 | NULL                      | NULL             | 0.06564795345695407 | 0.06914461951551351 |      0.9494296724306232 |          0.9431496213564421 |              0.964181423999566 |      -2.369897107336527E-4 | 0.060593459713451064 |
    | ["vendor_name=SAZERAC COMPANY  INC"]        | NULL       | NULL         | SAZERAC COMPANY  INC | NULL                      | NULL             | 0.06564824170155907 | 0.06728069733579875 |      0.9757366421740239 |           0.939610729279885 |             0.9343443980070573 |     -3.1033262381369034E-4 |  0.11571276474865996 |
    +---------------------------------------------+------------+--------------+----------------------+---------------------------+------------------+---------------------+---------------------+-------------------------+-----------------------------+--------------------------------+----------------------------+----------------------+
    

    在输出中,您可以看到数据细分 vendor_name=HEAVEN HILL BRANDS 的 aumann shapley 归因值最高,这表示它对销售比率变化的贡献最大。ratio_testratio_control 列中也显示了这一差异,它们显示与对照组数据相比,测试组数据中的比率有所增加。regional_relative_ratioambient_relative_ratio_testambient_relative_ratio_control 等其他指标会计算其他统计信息,这些统计信息描述了对照组和测试组的比率之间的关系,以及它们与总体样本之间的关系。如需了解详情,请参阅可求和比率指标输出列

清理

  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.