使用可相加的指標,從貢獻度分析模型取得資料洞察
在本教學課程中,您將使用貢獻分析模型,分析愛荷華州酒類銷售資料集在 2020 年和 2021 年的銷售變化。本教學課程將引導您完成下列工作:
- 根據公開的愛荷華州酒類資料建立輸入表格。
- 建立使用可相加指標的貢獻度分析模型。這類模型會針對資料中一或多個維度的組合,匯總特定指標,以便判斷這些維度對指標值的影響。
- 使用
ML.GET_INSIGHTS
函式,從模型取得指標洞察。
開始本教學課程前,請先熟悉貢獻分析的用途。
所需權限
如要建立資料集,您必須具備
bigquery.datasets.create
身分與存取權管理 (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.
您可以使用 Pricing Calculator 根據預測用量產生預估費用。
如要進一步瞭解 BigQuery 定價,請參閱 BigQuery 說明文件中的「BigQuery 定價」一節。
事前準備
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery API.
建立資料集
建立 BigQuery 資料集來儲存機器學習模型。
控制台
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,按一下專案名稱。
依序點選
「View actions」(查看動作) >「Create dataset」(建立資料集)。在「Create dataset」頁面上執行下列操作:
在「Dataset ID」(資料集 ID) 中輸入
bqml_tutorial
。在「位置類型」中選取「多區域」,然後選取「美國 (多個美國區域)」。
保留其餘預設設定,然後點選「Create dataset」(建立資料集)。
bq
如要建立新的資料集,請使用 bq mk
指令搭配 --location
旗標。如需可能參數的完整清單,請參閱 bq mk --dataset
指令參考資料。
建立名為
bqml_tutorial
的資料集,並將資料位置設為US
,說明為BigQuery ML tutorial dataset
:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
這個指令採用
-d
捷徑,而不是使用--dataset
旗標。如果您省略-d
和--dataset
,該指令預設會建立資料集。確認資料集已建立:
bq ls
API
請呼叫 datasets.insert
方法,搭配已定義的資料集資源。
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
BigQuery DataFrames
在嘗試這個範例之前,請先參閱 BigQuery 快速入門:使用 BigQuery DataFrames,按照 BigQuery DataFrames 設定說明進行操作。詳情請參閱 BigQuery DataFrames 參考資料說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定 ADC」。
建立輸入資料表
建立包含測試和控制資料的資料表,以便進行分析。測試表格包含 2021 年的酒類資料,控制表格則包含 2020 年的酒類資料。以下查詢會將測試資料和控制組資料合併為單一輸入表格:
前往 Google Cloud 控制台的「BigQuery」頁面。
在查詢編輯器中執行下列陳述式:
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) );
建立模型
建立貢獻分析模型:
前往 Google Cloud 控制台的「BigQuery」頁面。
在查詢編輯器中執行下列陳述式:
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
就會顯示在「Explorer」窗格中的 bqml_tutorial
資料集中。由於查詢是使用 CREATE MODEL
陳述式建立模型,因此沒有查詢結果。
從模型中取得洞察資訊
使用 ML.GET_INSIGHTS
函式,取得貢獻度分析模型產生的洞察資料。
前往 Google Cloud 控制台的「BigQuery」頁面。
在查詢編輯器中執行下列陳述式,從可加總指標貢獻度分析模型的輸出內容中選取資料欄:
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`);
輸出內容的前幾列應如下所示。系統會截斷值以改善可讀性。
貢獻者 | metric_test | metric_control | 差異 | relative_difference | unexpected_difference | relative_unexpected_difference | apriori_support | 貢獻 |
---|---|---|---|---|---|---|---|---|
全部 | 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 美元,增幅為 7.9%,如 relative_difference
欄所示。在第二列的 vendor_name=SAZERAC COMPANY INC
中,unexpected_difference
為 $11,491,923 美元,這表示這個資料區隔的成長率比整體資料的成長率高出 28%,如 relative_unexpected_difference
欄所示。詳情請參閱可加總的指標輸出欄。
清除所用資源
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.