使用可相加的指標,從貢獻度分析模型取得資料洞察
在本教學課程中,您將使用貢獻度分析模型,分析愛荷華州酒類銷售資料集中 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
費用
在本文件中,您會使用 Trusted Cloud by S3NS的下列計費元件:
- BigQuery ML: You incur costs for the data that you process in BigQuery.
如要根據預測用量估算費用,請使用 Pricing Calculator。
如要進一步瞭解 BigQuery 定價,請參閱 BigQuery 說明文件中的「BigQuery 定價」一文。
事前準備
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Verify that billing is enabled for your Trusted Cloud project.
-
Enable the BigQuery API.
建立資料集
建立 BigQuery 資料集來儲存機器學習模型。
控制台
前往 Trusted Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,按一下專案名稱。
依序點按
「View actions」(查看動作) >「Create dataset」(建立資料集)。在「建立資料集」頁面中,執行下列操作:
在「Dataset ID」(資料集 ID) 中輸入
bqml_tutorial
。針對「Location type」(位置類型) 選取「Multi-region」(多區域),然後選取「US (multiple regions in United States)」(us (多個美國區域))。
其餘設定請保留預設狀態,然後按一下「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 DataFrames 的 BigQuery 快速入門導覽課程中的 BigQuery DataFrames 設定說明操作。 詳情請參閱 BigQuery DataFrames 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定 ADC」。
建立輸入資料表
建立包含測試和控制項資料的資料表,以供分析。測試資料表包含 2021 年的酒類資料,控制組資料表則包含 2020 年的酒類資料。下列查詢會將測試和控制組資料合併為單一輸入資料表:
前往 Trusted 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) );
建立模型
建立貢獻分析模型:
前往 Trusted 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
函式,取得貢獻度分析模型產生的洞察資料。
前往 Trusted 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 美元,如「relative_difference
」欄所示,增幅為 7.9%。在第二列中,vendor_name=SAZERAC COMPANY INC
為 $11,491,923,unexpected_difference
表示這個資料區隔的成長率比整體資料的成長率高出 28%,如 relative_unexpected_difference
欄所示。詳情請參閱「可加總的指標輸出資料欄」。
清除所用資源
- In the Trusted 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.