访问 700 多个实验和课程

使用 BigQuery ML 预测访问者购买情况

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

概览

BigQuery Machine Learning (BigQuery ML) 让用户可以利用 SQL 查询,在 BigQuery 中创建和执行机器学习模型。其目标是让 SQL 专业人员能够利用现有的工具构建模型,并通过消除数据移动需求来提高开发速度,从而实现机器学习的普及。

本实验中有一个电子商务数据集,其中包含 Google Merchandise Store 的上百万条 Google Analytics 记录,并且已加载到 BigQuery。在此实验中,您要使用这些数据创建一个预测访问者是否会进行交易的模型。

学习内容

如何在 BigQuery 中创建、评估和使用机器学习模型

所需条件

  • 一个浏览器,例如 ChromeFirefox
  • 具备 SQL 或 BigQuery 的基础知识

设置和要求

对于每个实验,您都会免费获得一个新的 Google Cloud 项目及一组资源,它们都有固定的使用时限。

  1. 请使用无痕式窗口登录 Qwiklabs。

  2. 留意实验的访问时限(例如 1:15:00)并确保能在相应时间段内完成实验。
    系统不提供暂停功能。如有需要,您可以重新开始实验,不过必须从头开始。

  3. 准备就绪时,点击开始实验

  4. 请记好您的实验凭据(用户名密码)。您需要使用这组凭据来登录 Google Cloud 控制台。

  5. 点击打开 Google 控制台

  6. 点击使用其他帐号,然后将实验的凭据复制并粘贴到相应提示框中。
    如果您使用其他凭据,将会收到错误消息或产生费用

  7. 接受条款并跳过恢复资源页面。

打开 BigQuery 控制台

  1. 在 Google Cloud 控制台中,选择导航菜单 > BigQuery

您会看到欢迎在 Cloud 控制台中使用 BigQuery 消息框,其中会显示快速入门指南的链接以及界面更新。

  1. 点击完成

任务 1. 探索数据

在此任务中,您将探索并准备一个公开数据集,以用于机器学习模型。您将执行 SQL 查询以检查 Google Analytics 数据样本,并将结果保存为 training_data

我们将在本实验中使用的数据位于 bigquery-public-data 项目中,该项目可供所有用户使用。我们来看此数据的一个示例。

  1. 如需验证 bqml_lab 数据集是否存在,请点击以 qwiklabs-gcp-00-XXXXXXXXXX 开头的 Project_ID 左侧的箭头。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 窗格中将显示“欢迎使用 Cloud 控制台中的 Gemini”。点击开始聊天。在聊天窗口中,您将看到类似以下内容的查询解释:

注意:如果聊天窗口中未显示任何解释,请选择整个查询,然后再次点击解释此查询
  1. 仔细阅读该解释。
注意:作为一种生成式工具,Gemini Code Assist 每次给出的回答可能会略有不同,但核心要点会保持一致。
  1. Gemini 给出的回答可能类似以下内容:

    此 GoogleSQL 查询旨在提取 Google Analytics 会话数据样本,并将其转换为适合用于机器学习或分析的格式。
  2. 点击运行

  3. 点击保存,然后选择保存视图

  4. 在“保存视图”对话框中,点击数据集,然后选择 bqml_lab

  5. 对于“表”,输入 training_data,然后点击保存

点击检查我的进度,验证已完成以下目标: 创建视图表。

任务 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 界面窗口等任务。

点击检查我的进度,验证已完成以下目标: 创建模型。

[可选] 模型信息和训练统计数据

如果有兴趣,可以在左侧菜单中点击 bqml_lab 数据集,然后在界面中点击 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. 我们来保存一下七月份的数据,以便在接下来的步骤中用我们的模型基于这些数据进行预测。

  2. 点击保存,然后选择保存视图

  3. 在“保存视图”对话框中,点击数据集,然后选择 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 聚合函数。

建议中提供了类似以下内容的优化查询,有可能解决问题:

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 部分会使用标准 SQL 命令进行封装。对于此实验,您关注的是国家/地区以及每个国家/地区的购买总量,所以才使用 SELECTGROUP BYORDER BY. LIMIT 来确保只获取排名前十的结果。

您应该会看到类似如下所示的表:

一个包含 3 列、10 行的表,其中显示了每个国家/地区的总购买量预测数据

点击检查我的进度,验证已完成以下目标: 修复错误并检索每个国家/地区排名前十的购买量。

挑战

预测每位用户的购买量

现在,您将试着预测每个访问者的交易量,对结果排序,并选出交易量最高的前十个访问者。

结束实验

完成实验后,请点击结束实验。Google Cloud Skills Boost 会移除您使用过的资源并为您清理帐号。

系统会提示您为实验体验评分。请选择相应的星级数,输入评论,然后点击提交

星级数的含义如下:

  • 1 颗星 = 非常不满意
  • 2 颗星 = 不满意
  • 3 颗星 = 一般
  • 4 颗星 = 满意
  • 5 颗星 = 非常满意

如果您不想提供反馈,可以关闭该对话框。

如果要留言反馈、提出建议或做出更正,请使用支持标签页。

版权所有 2020 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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