检查点
Create a new dataset
/ 20
Create a model and specify model options
/ 20
Evaluate classification model performance
/ 15
Improve model performance with Feature Engineering(Create second model)
/ 15
Improve model performance with Feature Engineering(Better predictive power)
/ 15
Predict which new visitors will come back and purchase
/ 15
運用 BigQuery ML 的分類模型預測訪客購物行為
GSP229
總覽
BigQuery 是 Google 的全代管數據分析資料庫,不但免人工管理,而且價格低廉。您可以使用 BigQuery 查詢 TB 規模的資料,不必管理基礎架構,也不需要資料庫管理員。BigQuery 使用 SQL,並且採用「即付即用」模式。這項服務可讓您專心分析資料,找出有意義的深入分析結果。
BigQuery ML 是 BigQuery 的功能之一。憑藉這項功能,資料分析師只要編寫少量程式碼,就能建立、訓練及評估機器學習模型,並用模型做出預測。
在本實驗室中,您將運用一個 BigQuery 已載入的特別電子商務資料集,其中包含 Google Analytics 記錄的數百萬筆 Google 商品網路商店資料。您需要用這份資料在 BigQuery ML 中建立分類 (邏輯迴歸) 模型,預測消費者的購物習慣。
課程內容
本實驗室將說明如何執行下列工作:
- 使用 BigQuery 尋找公開資料集
- 查詢及探索電子商務資料集
- 建立訓練和評估資料集,供批次預測使用
- 在 BigQuery ML 中建立分類 (邏輯迴歸) 模型
- 評估與改進機器學習模型的成效
- 預測訪客購物的可能性並做出排名
設定和需求
點選「Start Lab」按鈕前的須知事項
請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「Start Lab」 後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。
您將在真正的雲端環境中完成實作研究室活動,而不是在模擬或示範環境。為達此目的,我們會提供新的暫時憑證,讓您用來在研究室活動期間登入及存取 Google Cloud。
如要完成這個研究室活動,請先確認:
- 您可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
- 是時候完成研究室活動了!別忘了,活動一開始將無法暫停。
如何開始研究室及登入 Google Cloud 控制台
-
按一下「Start Lab」(開始研究室) 按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:
- 「Open Google Cloud console」按鈕
- 剩餘時間
- 必須在這個研究室中使用的暫時憑證
- 完成這個實驗室所需的其他資訊 (如有)
-
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,然後選取「在無痕式視窗中開啟連結」。
接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」。 -
如有必要,請將下方的 Username 貼到「登入」對話方塊。
{{{user_0.username | "Username"}}} 您也可以在「Lab Details」窗格找到 Username。
-
點選「下一步」。
-
複製下方的 Password,並貼到「歡迎使用」對話方塊。
{{{user_0.password | "Password"}}} 您也可以在「Lab Details」窗格找到 Password。
-
點選「下一步」。
重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。 -
按過後續的所有頁面:
- 接受條款及細則。
- 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
- 請勿申請免費試用。
Google Cloud 控制台稍後會在這個分頁開啟。
開啟 BigQuery 控制台
- 在 Google Cloud 控制台中,依序選取「導覽選單」>「BigQuery」。
接著,畫面中會顯示「歡迎使用 Cloud 控制台中的 BigQuery」訊息方塊,當中會列出快速入門導覽課程指南的連結和版本資訊。
- 點選「完成」。
BigQuery 控制台會隨即開啟。
存取課程資料集
- 在「Explorer」窗格中點選「+ 新增」。
Add data
窗格隨即開啟。
-
在「其他來源」之下,點選「依據名稱為專案加上星號」。
-
輸入
data-to-insights
並點選「星號」圖示。
點選下方的直接連結,即可查看公開的 data-to-insights 專案:
如要查看 data-to-insights 電子商務資料集的欄位定義,請按這裡。您可以在新分頁中開啟該頁面,方便隨時參考。
按一下「查詢」分頁標籤,然後選取「在新分頁中開啟」以開啟查詢編輯器。
工作 1:探索電子商務資料
情境:資料分析師團隊已將電子商務網站的 Google Analytics 記錄匯出至 BigQuery 並建立新資料表,內含所有原始電子商務訪客工作階段的資料。您可以試著根據這些資料回答幾個問題。
問題:我們網站的所有訪客當中,購買商品的人占多少百分比?
- 複製下列查詢,貼入 BigQuery 的「編輯器」:
- 點選「執行」。
結果:2.69%
問題:銷售量前 5 名的產品是哪些?
- 清除先前的查詢,然後在「編輯器」中新增以下查詢:
- 按一下「執行」。
結果:
Row |
v2ProductName |
v2ProductCategory |
units_sold |
revenue |
1 |
Nest® Learning Thermostat 3rd Gen-USA - Stainless Steel |
Nest-USA |
17651 |
870976.95 |
2 |
Nest® Cam Outdoor Security Camera - USA |
Nest-USA |
16930 |
684034.55 |
3 |
Nest® Cam Indoor Security Camera - USA |
Nest-USA |
14155 |
548104.47 |
4 |
Nest® Protect Smoke + CO White Wired Alarm-USA |
Nest-USA |
6394 |
178937.6 |
5 |
Nest® Protect Smoke + CO White Battery Alarm-USA |
Nest-USA |
6340 |
178572.4 |
問題:有多少訪客在後續造訪網站時購買商品?
- 清除先前的查詢,然後在「編輯器」中新增以下查詢:
- 按一下「執行」。
結果:
Row |
total_visitors |
will_buy_on_return_visit |
1 |
729848 |
0 |
2 |
11873 |
1 |
分析結果可知,有 (11873 / 741721) = 1.6% 的訪客會回到網站上購物,當中包括首次造訪就已消費,後續回訪又再次消費的訪客。
問題:一般電子商務消費者不會在瀏覽當下立即購買商品,而是之後才返回購買商品,有哪些原因?
答案:這題沒有唯一正確的答案,但其中一個常見原因是,消費者需要比較在不同電子商務網站上購買的差異,再做出最終決定。對於汽車之類的高價商品,消費者在選購前通常會做足功課、貨比三家。而他們在選購這個網站上的 T 恤、配件等商品時,也稍微表現出這樣的傾向。
在網路行銷領域,根據訪客首次造訪時展現的特徵,辨識潛在消費者並向他們行銷,不僅能提高轉換率,還能防止他們流向競爭對手的網站。
工作 2:確定目標
現在,您將在 BigQuery 中建立一個機器學習模型,用來預測新使用者日後是否可能購買商品。若能辨識出這些高價值使用者,行銷團隊就能針對他們推出特別促銷和廣告活動,確保即使他們在您的電子商務網站和其他平台之間來回比較,最終也能實現轉換。
工作 3:選取特徵並建立訓練資料集
Google Analytics 會對使用者造訪這個電子商務網站的行為,擷取各種維度和度量。請瀏覽「[通用 Analytics] BigQuery Export 結構定義文件」中的完整欄位清單,接著預覽示範資料集,找出有助機器學習模型分析的特徵,使其能根據訪客首次造訪網站的資料,預測他們是否會返回消費。
您的團隊決定以這兩個欄位做為分類模型的輸入資料,看看能否取得理想結果:
-
totals.bounces
(訪客是否立即離開網站) -
totals.timeOnSite
(訪客在網站上停留的時間)
問題:只使用這兩個欄位有何風險?
答案:機器學習成效取決於訓練資料是否完備。如果資訊不足,導致模型無法判斷及學習輸入特徵和標籤之間的關聯性 (在本例中,指的是消費者日後是否會購買商品),您就無法建立準確的模型。雖然一開始只用這兩個欄位訓練模型,但您很快就會看到這是否足以產生準確的模型。
- 在 BigQuery 的「編輯器」中執行下列查詢:
結果:
Row |
bounces |
time_on_site |
will_buy_on_return_visit |
1 |
0 |
15047 |
0 |
2 |
0 |
12136 |
0 |
3 |
0 |
11201 |
0 |
4 |
0 |
10046 |
0 |
5 |
0 |
9974 |
0 |
6 |
0 |
9564 |
0 |
7 |
0 |
9520 |
0 |
8 |
0 |
9275 |
1 |
9 |
0 |
9138 |
0 |
10 |
0 |
8872 |
0 |
問題:哪些欄位是輸入特徵?哪些是標籤?
答案:bounces 和 time_on_site 是輸入內容,will_buy_on_return_visit 是標籤。
問題:訪客首次造訪後,可以獲得哪兩個欄位的資料?
答案:bounces 和 time_on_site 是訪客首次造訪後可獲得資料的欄位。
問題:哪個欄位的資料是後來才取得?
問題:will_buy_on_return_visit 是無法在訪客首次造訪後就取得資料的欄位。別忘了,您要預測的是誰會回到您的網站消費,而您在預測時並不知道未來的情況,無法確定新訪客是否將返回消費。我們希望根據訪客首次造訪期間的資料,瞭解消費者日後購買商品的可能性,這也是建構機器學習模型的價值所在。
問題:從初步資料結果來看,您認為 time_on_site 和 bounces 能否成為用來預測使用者將返回消費的良好指標?
回答:在訓練及評估模型前,通常無法下定論,但目前看來,排名前 10 的 time_on_site
中,只有 1 位消費者回訪並購買商品,準確度並不高。接著看看這個模型的成效。
工作 4:建立 BigQuery 資料集來儲存模型
接著請建立新的 BigQuery 資料集,這個資料集也會用於儲存機器學習模型。
- 在左側窗格的「Explorer」專區之下,點選專案名稱 (開頭是
qwiklabs-gcp-...
) 旁邊的「查看動作」圖示,然後點選「建立資料集」。
- 在「建立資料集」對話方塊中:
- 在「資料集 ID」部分輸入「ecommerce」。
- 其他設定保留預設值。
- 點選「建立資料集」。
點選「Check my progress」,確認目標已達成。
工作 5:選取 BigQuery 機器學習模型類型,並指定選項
您已選取初始特徵,現在可以在 BigQuery 中建立第一個機器學習模型。
有兩種模型可選擇:
模型 |
模型類型 |
標籤資料類型 |
示例 |
預測 |
linear_reg |
數值 (通常為整數或浮點值) |
根據以往的銷售資料,預測來年的銷售額。 |
分類 |
logistic_reg |
以 0 或 1 表示的二元分類 |
根據背景資訊,將電子郵件分為垃圾郵件或非垃圾郵件。 |
您應該選擇哪一種模型?
為了將訪客分成「日後會消費」與「日後不會消費」兩類,請在分類模型中使用 logistic_reg
。
以下查詢會建立模型並指定模型選項。
- 執行以下查詢來訓練模型:
- 等模型訓練完成 (5 至 10 分鐘)。
點選「Check my progress」,確認目標已達成。
模型訓練完成後,畫面上會顯示下列訊息:「This statement created a new model named qwiklabs-gcp-xxxxxxxxx:ecommerce.classification_model」。
-
點選「前往模型」。
-
查看電子商務資料集,確認 classification_model 已出現。
接下來,您將使用新資料評估模型成效。
工作 6:評估分類模型成效
選取成效條件
以機器學習技術的分類問題而言,您的目標在於盡可能降低偽陽率 (預測使用者會回訪並購買商品,結果並非如此),同時盡量提高真陽率 (預測使用者會回訪並購買商品,結果也的確如此)。
如下所示,這種關係可透過 ROC 曲線呈現,而您應設法讓曲線下面積達到最大:
使用 BigQuery ML 評估訓練過的機器學習模型時,roc_auc 只是一個可查詢的欄位。
- 現在訓練已經完成,您可以執行以下查詢,使用
ML.EVALUATE
評估模型成效:
畫面上應會顯示下列結果:
Row |
roc_auc |
model_quality |
1 |
0.7238561438561438 |
decent |
經過評估,模型的 roc_auc 為 0.72,這代表模型的預測能力不盡理想。由於目標是讓曲線下面積盡可能接近 1.0,所以還有改進空間。
點選「Check my progress」,確認目標已達成。
工作 7:運用特徵工程提升模型成效
如前所述,資料集中還有許多其他特徵,可能有助模型將訪客首次造訪的情形與後續返回消費的可能性做出連結。
- 請新增幾項新特徵,建立第二個機器學習模型,並命名為
classification_model_2
:
- 訪客首次造訪時,完成結帳程序的進度
- 訪客來自何處 (流量來源:自然搜尋、網站推薦等)
- 裝置類別 (行動裝置、平板電腦、桌上型電腦)
- 地理位置資訊 (國家/地區)
- 點選「+」(編寫新查詢) 圖示,建立第二個模型:
訓練資料集查詢新增的一項關鍵性特徵,就是每位訪客在工作階段中最多進行到結帳流程的哪個環節,這點記錄在 hits.eCommerceAction.action_type
欄位。如果在欄位定義中搜尋這個欄位,就會看到欄位值為 6 代表完成購買。
- 等新模型訓練完成 (5 至 10 分鐘)。
點選「Check my progress」,確認目標已達成。
- 評估新模型,看看預測能力是否提升:
輸出內容:
Row |
roc_auc |
model_quality |
1 |
0.9094875124875125 |
good |
使用新模型後,roc_auc 達到 0.91,結果明顯優於第一個模型。
模型已訓練完成,接著進行預測。
點選「Check my progress」,確認目標已達成。
工作 8:預測哪些新訪客會返回消費
接著請編寫查詢,預測哪些新訪客會返回消費。
- 以下查詢使用經過改善的分類模型,預測某位新訪客之後返回 Google 商品網路商店消費的可能性:
預測是根據資料集 (共 12 個月) 中最後 1 個月的資料進行。
點選「Check my progress」,確認目標已達成。
現在模型輸出的是對 2017 年 7 月電子商務工作階段的預測結果,可以看到三個新增欄位:
- predicted_will_buy_on_return_visit:模型是否認為訪客稍後會購買商品 (1 = 是)
- predicted_will_buy_on_return_visit_probs.label:表示是/否的二元分類器
- predicted_will_buy_on_return_visit.probs.prob:模型預測結果的可信度 (1 = 100%)
工作 9:分析結果和其他資訊
結果
- 在前 6% 的新訪客中 (預測可能性由高至低),超過 6% 在稍後回訪時購買商品。
- 在稍後回訪時購買商品的所有新訪客當中,這些使用者占了近 50% 的比例。
- 整體來看,只有 0.7% 的新訪客在稍後回訪時購買商品。
- 相較於所有新訪客,鎖定前 6% 的新訪客,能讓行銷的投資報酬率增加 9 倍!
其他資訊
提示:使用新資料重新訓練現有模型時,可以在模型選項中加入 warm_start = true
來縮短訓練時間。請注意,您無法變更特徵欄 (這需要新模型)。
roc_auc 只是模型評估作業可用的成效指標之一,還能使用準確率、精確度和喚回度指標。具體要依賴哪個成效指標,很大程度上取決於您的整體目標或目的。
其他可瀏覽的資料集
如果想瞭解使用其他資料集建模的情形,比如預測計程車車資,不妨使用 bigquery-public-data 專案。
- 如要開啟 bigquery-public-data 資料集,請點選「+ 新增」。在「其他來源」之下,點選「依據名稱為專案加上星號」。
- 寫入名稱為
bigquery-public-data
。 - 點選「星號」圖示。
bigquery-public-data
專案會列在「Explorer」專區。
工作 10:學以致用
接受測驗,測試您對 Google Cloud Platform 瞭解多少。
恭喜!
您已成功使用 BigQuery ML 建構機器學習模型,能順利將電子商務訪客分類並預測購物習慣。
後續行動/瞭解詳情
- 您有 Google Analytics 帳戶,並且想在 BigQuery 中查詢自己的資料集嗎?請前往 Analytics 說明頁面,依照 BigQuery Export 設定指南操作。
- 如需關於在 BigQuery 頁面中建立查詢的資源,請參閱查詢語法參考資料。
- 參加這個實驗室:使用 BigQuery ML 預測模型來預測計程車費用
Google Cloud 教育訓練與認證
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2024 年 2 月 7 日
實驗室上次測試日期:2023 年 10 月 9 日
Copyright 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。