使用可相加的比率指標,從貢獻度分析模型取得資料洞察
在本教學課程中,您將使用貢獻度分析模型,分析愛荷華州酒類銷售資料集中銷售成本比率的貢獻度。本教學課程會逐步引導您完成下列工作:
- 根據愛荷華州公開的酒類資料建立輸入資料表。
- 建立使用可相加比率指標的貢獻度分析模型。這類模型會彙整兩個數值資料欄的值,並判斷控制組和測試資料集之間,各資料區隔的比例差異。
- 使用
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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the BigQuery API.
建立資料集
建立 BigQuery 資料集來儲存機器學習模型。
控制台
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,按一下專案名稱。
依序點按
「View actions」(查看動作) >「Create dataset」(建立資料集)。在「建立資料集」頁面中,執行下列操作:
在「Dataset ID」(資料集 ID) 中輸入
bqml_tutorial
。針對「Location type」(位置類型) 選取「Multi-region」(多區域),然後選取「US (multiple regions in United States)」(us (多個美國區域))。
其餘設定保留預設值,然後點選「建立資料集」。
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 年的酒類資料控制資料表),然後合併中繼資料表,建立同時包含測試和控制列的資料表,以及相同的欄位集。
前往 Google Cloud 控制台的「BigQuery」頁面。
在查詢編輯器中執行下列陳述式:
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);
建立模型
建立貢獻分析模型:
前往 Google Cloud 控制台的「BigQuery」頁面。
在查詢編輯器中執行下列陳述式:
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
會顯示在「Explorer」窗格的 bqml_tutorial
資料集中。由於查詢使用 CREATE MODEL
陳述式建立模型,因此不會有查詢結果。
從模型取得洞察資訊
使用 ML.GET_INSIGHTS
函式,取得貢獻度分析模型產生的洞察資料。
前往 Google Cloud 控制台的「BigQuery」頁面。
在查詢編輯器中,執行下列陳述式,從可加總比率指標貢獻度分析模型的輸出內容中選取資料欄:
SELECT contributors, metric_test, metric_control, metric_test_over_metric_control, metric_test_over_complement, metric_control_over_complement, aumann_shapley_attribution, apriori_support contribution FROM ML.GET_INSIGHTS( MODEL `bqml_tutorial.liquor_sales_model`) ORDER BY aumann_shapley_attribution DESC;
輸出內容的前幾列應如下所示:為提升可讀性,系統會截斷值。
貢獻者 | metric_test | metric_control | metric_test_over_metric_control | metric_test_over_complement | metric_control_over_complement | aumann_shapley_attribution | apriori_support | 貢獻 |
---|---|---|---|---|---|---|---|---|
全部 | 0.069 | 0.071 | 0.969 | null | null | -0.00219 | 1.0 | 0.00219 |
city=DES MOINES | 0.048 | 0.054 | 0.88 | 0.67 | 0.747 | -0.00108 | 0.08 | 0.00108 |
vendor_name=DIAGEO AMERICAS | 0.064 | 0.068 | 0.937 | 0.917 | 0.956 | -0.0009 | 0.184 | 0.0009 |
vendor_name=BACARDI USA INC | 0.071 | 0.082 | 0.857 | 1.025 | 1.167 | -0.00054 | 0.057 | 0.00054 |
vendor_name=PERNOD RICARD USA | 0.068 | 0.077 | 0.89 | 0.988 | 1.082 | -0.0005 | 0.061 | 0.0005 |
在輸出內容中,您可以看到資料區隔 city=DES MOINES
對銷售比率變化貢獻最大
。您也可以在 metric_test
和 metric_control
欄中查看這項差異,這兩欄顯示測試資料的比例低於對照組資料。其他指標 (例如 metric_test_over_metric_control
、metric_test_over_complement
和 metric_control_over_complement
) 會計算額外的統計資料,說明控制組和測試組比率之間的關係,以及這些比率與整體母體的關聯。詳情請參閱「可加總比率指標貢獻度分析模型輸出內容」。
清除所用資源
- 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.