访问 700 多个实验和课程

運用 BigQuery ML (BigQuery 機器學習) 預測訪客購物行為

实验 1 小时 universal_currency_alt 5 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

總覽

BigQuery 機器學習 (BigQuery ML) 可讓使用者運用 SQL 查詢,在 BigQuery 建立並執行機器學習模型,目標是讓 SQL 使用者能透過現有的工具建立模型,而且不必移動資料,可加快開發速度,使所有人都能輕鬆使用機器學習技術。

BigQuery 已載入電子商務資料集,其中包含數百萬筆 Google Analytics 的 Google 商品網路商店記錄。在本實驗室中,您將使用這些資料建立模型,預測訪客是否會完成交易。

課程內容

如何在 BigQuery 建立、評估與使用機器學習模型

事前準備

設定和需求

在每個研究室中,您都能在固定時間內免付費建立新的 Google Cloud 專案,並使用一組資源。

  1. 請透過無痕式視窗登入 Qwiklabs。

  2. 請記下研究室的存取時間 (例如 1:15:00),並確保自己能在時間限制內完成作業。
    研究室不提供暫停功能。如有需要,您可以重新開始,但原先的進度恕無法保留。

  3. 準備就緒後,請按一下「Start lab」

  4. 請記下研究室憑證 (使用者名稱密碼),這組資訊將用於登入 Google Cloud 控制台。

  5. 按一下「Open Google Console」

  6. 按一下「Use another account」,然後複製這個研究室的憑證,並貼入提示訊息。
    如果使用其他憑證,系統會顯示錯誤或向您收取費用

  7. 接受條款,然後略過資源復原頁面。

開啟 BigQuery 控制台

  1. 在 Google Cloud 控制台中,依序選取「導覽選單」>「BigQuery」

接著,畫面中會顯示「歡迎使用 Cloud 控制台中的 BigQuery」訊息方塊,當中會列出快速入門指南的連結和使用者介面更新內容。

  1. 按一下「完成」

工作 1:探索資料

在這項工作中,您將探索並準備機器學習模型要使用的公開資料集,執行 SQL 查詢來檢查 Google Analytics 資料樣本,然後將結果儲存為 training_data

本實驗室要使用的資料位於 bigquery-public-data 專案,所有人皆可存取。我們來看看部分資料。

  1. 點選 Project_ID (開頭為 qwiklabs-gcp-00-XXXXXXXXXX) 左側的箭頭,確認是否有 bqml_lab 這個資料集。bqml_lab 資料集應會列在下方。

  2. 點選 + 圖示,建立新的 SQL 查詢。BigQuery Studio 中便會顯示新分頁。

說明查詢

  1. 在「未命名的查詢」方塊中新增查詢。
SELECT IF(totals.transactions IS NULL, 0, 1) AS label, IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(geoNetwork.country, "") AS country, IFNULL(totals.pageviews, 0) AS pageviews FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20160801' AND '20170631' LIMIT 10000;
  1. 選取查詢。

  2. 點選緊鄰查詢左側的 Gemini「Gemini Code Assist」按鈕。

  3. 點選「說明這項查詢」

  4. 您會看到 Gemini 對話方塊在 BigQuery Studio 的右側開啟。

  5. Gemini 窗格會顯示「Welcome to Gemini in Cloud Console」訊息。點選「Start Chatting」。對話視窗中會顯示類似下方內容的查詢說明。

注意:如果對話視窗未顯示說明,請選取整個查詢,再次點選「說明這項查詢」
  1. 查看說明。
注意:Gemini Code Assist 是生成式工具,每次生成的回覆會略有不同,但重點應該類似。
  1. Gemini 的回覆會類似下列內容:

    This GoogleSQL query is designed to extract a sample of Google Analytics session data and transform it into a format suitable for machine learning or analytical purposes.
  2. 點選「執行」

  3. 點選「儲存」,然後選取「儲存 view」

  4. 在「儲存 view」對話方塊中,點選「資料集」,然後選取「bqml_lab」。

  5. 在「資料表」欄位中輸入 training_data,然後點選「儲存」

點選「Check my progress」,確認目標已達成。 建立 view 資料表。

工作 2:建立模型

在這項工作中,您將在 BigQuery 中使用 SQL 查詢自然語言提示詞,生成新的機器學習模型來預測訪客交易。您需要指定邏輯迴歸模型類型,然後使用現有的 training_data 訓練模型。

  1. 點選 + 圖示,建立新的 SQL 查詢。BigQuery Studio 中便會顯示新分頁。

  2. 點選 SQL 生成工具 即可使用 SQL 生成工具,您會看到「透過 Gemini 生成 SQL」對話方塊。您可以在此視窗中輸入自然語言提示詞,生成新的 SQL 陳述式。

  3. 複製並貼上下列提示詞

    Create a model name sample_model, type logistic_reg to predict whether a visitor will make a transaction using the training_data view table.
  4. 點選「產生」,Gemini 會提供 SQL 查詢建議,類似下列內容:

    CREATE MODEL `{{{project_0.project_id|set at lab start}}}`.`bqml_lab`.`sample_model` OPTIONS ( model_type = 'LOGISTIC_REG', input_label_cols = ['label']) AS SELECT label, os, is_mobile, country, pageviews FROM `{{{project_0.project_id|set at lab start}}}`.`bqml_lab`.`training_data`;
注意:如果生成的查詢引發錯誤訊息,建議您調整查詢語法,或將整個查詢改為這裡提供的範例內容。
  1. 點選「插入」

  2. 點選「執行」

在本例中,bqml_lab 是資料集名稱,sample_model 是模型名稱,training_data 則是我們在前一項工作中查看的交易資料。指定的模型類型是二元邏輯迴歸。

執行 CREATE MODEL 指令會建立非同步執行的查詢工作,這樣就能關閉或重新整理 BigQuery UI 視窗等。

點選「Check my progress」,確認目標已達成。 建立模型。

[非必要] 模型資訊與訓練統計資料

如果感興趣,您可以點選左選單中的 bqml_lab 資料集,按一下 UI 中的 sample_model 模型來取得模型資訊。在「詳細資料」下,您會找到一些基本的模型資訊,以及用於產生模型的訓練選項。在「訓練」下,您會看見類似下方的資料表:

有六個資料欄的資料表,顯示 11 列關於疊代、資料遺失、學習率,以及完成時間等資料

工作 3:評估模型

在這項工作中,您將使用 ML.EVALUATE 函式評估機器學習模型的效能,藉此掌握重要指標,瞭解模型預測訪客交易時的準確度。

  1. 點選 + 圖示,建立新的 SQL 查詢。BigQuery Studio 中便會顯示新分頁。

  2. 點選 SQL 生成工具 即可使用 SQL 生成工具,您會看到「透過 Gemini 生成 SQL」對話方塊。您可以在此視窗中輸入自然語言提示詞,生成新的 SQL 陳述式。

  3. 複製並貼上下列提示詞。

    Write a query to evaluate the performance of the model `bqml_lab.sample_model` using the `ml.EVALUATE` function.
  4. 點選「產生」,Gemini 會提供 SQL 查詢建議,類似下列內容:

    SELECT * FROM ML.EVALUATE( MODEL `{{{project_0.project_id|set at lab start}}}`.`bqml_lab`.`sample_model`, TABLE `{{{project_0.project_id|set at lab start}}}`.`bqml_lab`.`training_data`);
注意:如果生成的查詢引發錯誤訊息,建議您調整查詢語法,或將整個查詢改為這裡提供的範例內容。
  1. 點選「插入」

  2. 點選「執行」

您會看見類似下方的資料表:

結果資料表

工作 4:使用模型

在這項工作中,您將學習如何使用 BigQuery 的 ML.PREDICT 函式進行預測,但在那之前,必須先對使用錯誤函式的查詢執行偵錯作業,透過 Gemini 找出並修正語法錯誤,然後再執行查詢,預測購買量排名前 10 的國家/地區。

  1. 點選 + 圖示,建立新的 SQL 查詢並執行下列查詢:
SELECT IF(totals.transactions IS NULL, 0, 1) AS label, IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(geoNetwork.country, "") AS country, IFNULL(totals.pageviews, 0) AS pageviews, fullVisitorId FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170801';

在這項查詢中,您會發現 SELECTFROM 部分與用於生成訓練資料的查詢類似,而且還加入了 fullVisitorId 欄,該欄將用於預測個別使用者的交易。至於 WHERE 部分,則反映出時間範圍的變化 (2017 年 7 月 1 日至 8 月 1 日)。

  1. 儲存這筆 7 月的資料,以便在後續步驟中搭配模型進行預測。

  2. 點選「儲存」,然後選取「儲存 view」

  3. 在「儲存 view」對話方塊中,點選「資料集」,然後選取「bqml_lab」。

  4. 在「資料表」欄位中輸入 july_data,然後點選「儲存」

預測各國家/地區的購買量

透過這項查詢,您將嘗試預測各國家/地區訪客的交易量、排序結果,並選出購買量排名前 10 的國家/地區:

  1. 點選 + 圖示,建立新的 SQL 查詢。

  2. 複製並貼上下列查詢。

SELECT country, TOTAL(predicted_label) as total_predicted_purchases FROM ml.PREDICT(MODEL `bqml_lab.sample_model`, ( SELECT * FROM `bqml_lab.july_data`)) GROUP BY country ORDER BY total_predicted_purchases DESC LIMIT 10;
  1. 點選「執行」。您會發現查詢執行失敗,畫面上會顯示下列錯誤訊息:

    Function not found: TOTAL at [3:3]

運用 Gemini 對程式碼進行偵錯並排解錯誤

  1. 點選 BigQuery 中的 Gemini 對話視窗。

  2. 複製下列問題並貼到對話視窗中。

    Why am I getting "Function not found: TOTAL at [3:3]" when I run this query?
  3. 按下 SHIFT + ENTER 鍵或 Mac 的 SHIFT + return 鍵,在對話視窗中建立新行。

  4. 選取並複製查詢。

  5. 將查詢貼到您剛才輸入的問題後方。

  6. 按下 SHIFT + ENTER 鍵或 Mac 的 SHIFT + return 鍵,在對話視窗中建立新行。

  7. 複製並貼上下列句子:

    Please suggest new code to resolve any issues.
  8. 點選「傳送提示詞」按鈕 傳送提示詞。您會收到 Gemini 的回覆。

  9. 查看回覆中的建議。從這些建議中可看出,TOTAL() 不是 BigQuery 中有效的 SQL 匯總函式。

Gemini 在建議中提供了可行的解決方案,包括修正後的查詢,如下所示:

SELECT country, SUM(predicted_label) as total_predicted_purchases FROM ml.PREDICT(MODEL `bqml_lab.sample_model`, ( SELECT * FROM `bqml_lab.july_data`)) GROUP BY country ORDER BY total_predicted_purchases DESC LIMIT 10;
  1. 複製修正後的查詢。

  2. 點選 + 圖示,建立新的 SQL 查詢。

  3. 在新的「未命名的查詢」分頁中,貼上修正後的查詢。

  4. 點選「執行」

本次查詢使用的是 ml.PREDICT,且查詢的 BigQuery ML (BigQuery 機器學習) 部分是用標準 SQL 指令包裹起來。在本實驗室中,您感興趣的是國家/地區與各國家/地區的總購買量,所以選擇使用 SELECTGROUP BYORDER BYLIMIT 則用於確保只會取得購買量前 10 多的結果。

您會看見類似下方的資料表:

有三個資料欄的資料表,包含 10 列資料,列出每個國家/地區的總預測購買量

點選「Check my progress」,確認目標已達成。 修正錯誤,並擷取購買量排行前 10 的國家/地區資料。

挑戰

預測各使用者的購買量

這次,您將嘗試預測各訪客的交易量、排序結果,並選出交易量排名 10 的訪客。

關閉研究室

如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Google Cloud Skills Boost 會移除您使用的資源,並清除所用帳戶。

您可以針對研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)

星級評等代表您的滿意程度:

  • 1 星 = 非常不滿意
  • 2 星 = 不滿意
  • 3 星 = 普通
  • 4 星 = 滿意
  • 5 星 = 非常滿意

如果不想提供意見回饋,您可以直接關閉對話方塊。

如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。

Copyright 2022 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。