arrow_back

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

登录 加入
访问 700 多个实验和课程

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

实验 1 小时 30 分钟 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 Console 中,选择导航菜单 > BigQuery

您会看到欢迎在 Cloud Console 中使用 BigQuery 消息框,其中包含快速入门指南的链接并列出了界面更新。

  1. 点击完成

任务 1. 创建数据集

  1. 在项目中创建新数据集,方法是点击探索器部分中项目 ID 旁边的三点状图标,然后点击创建数据集

创建数据集对话框将打开。

  1. 针对数据集 ID 输入 bqml_lab,然后点击创建数据集(接受其他默认值)。

任务 2. 探索数据

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

  1. 将查询添加到未命名的查询框,然后点击运行按钮。
#standardSQL 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;

数据表中有很多列,但只有少数几列是我们感兴趣的,我们会使用这些列来创建机器学习模型。这里将用到访问者设备的操作系统、设备是否为移动设备、访问者所在的国家/地区以及网页浏览次数,作为判断是否进行了交易的标准。在此例中,label 是要匹配(或预测)的目标。

这些数据将作为您创建的机器学习模型的训练数据。只使用从 2016 年 8 月 1 日到 2017 年 6 月 30 日收集的数据作为训练数据,保留最后一个月的数据用于“预测”。为了节省时间,数据点的数量上限为 10,000 个。

  1. 我们来将这些数据保存为训练数据。点击保存,然后从下拉菜单中选择保存视图,将此查询保存为视图。在弹出式窗口中,选择数据集作为 bqml_lab 并输入 training_data 作为表名称,然后点击保存

任务 3. 创建模型

  • 现在,用以下代码替换查询,以创建一个用来预测访问者是否会进行交易的模型:
#standardSQL CREATE OR REPLACE MODEL `bqml_lab.sample_model` OPTIONS(model_type='logistic_reg') AS SELECT * from `bqml_lab.training_data`;

在此例中,bqml_lab 是数据集的名称,sample_model 是模型的名称,training_data 是我们在上一个任务中分析的交易数据。指定的模型类型是二进制逻辑回归。

运行 CREATE MODEL 命令创建一个异步运行的查询作业,这样就可以执行关闭或刷新 BigQuery 界面窗口等任务。

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

如果有兴趣,可以在左侧菜单中点击 bqml_lab 数据集,然后在界面中点击 sample_model 数据集来获取有关模型的信息。在详细信息标签页下,可以找到一些基础的模型信息和用于生成模型的训练选项。在训练下,应该可以看到类似如下所示的表:

一个包含六列的表,显示了 11 行有关迭代、数据损失、学习速率、完成时间数据

任务 4. 评估模型

  • 现在,用以下代码替换查询:
#standardSQL SELECT * FROM ml.EVALUATE(MODEL `bqml_lab.sample_model`);

在此查询中,您要使用 ml.EVALUATE 函数根据实际数据评估预测值,该函数提供了一些有关模型表现的指标。您应该会看到类似如下所示的表:

结果表

任务 5. 使用模型

  1. 现在,点击 SQL 查询,然后运行下面的查询:
#standardSQL 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. 我们来保存一下七月份的数据,以便在接下来的两个步骤中用我们的模型基于这些数据进行预测。点击保存,然后从下拉菜单中选择保存视图,将此查询保存为视图。在弹出式窗口中,选择数据集作为 bqml_lab 并输入 july_data 作为表名称,然后点击保存

  2. 预测每个国家/地区的购买量

利用这个查询,您可以尝试预测每个国家/地区的访问者的交易量、对结果排序,并选出购买量最高的十个国家/地区:

#standardSQL 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;

在此查询中,您将使用 ml.PREDICT,查询的 BigQuery ML 部分会使用标准 SQL 命令进行封装。对于此实验,您关注的是国家/地区以及每个国家/地区的购买总量,所以才使用 SELECTGROUP BYORDER BY. LIMIT 来确保只获取排名前十的结果。

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

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

  1. 预测每位用户的购买量

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

#standardSQL SELECT fullVisitorId, SUM(predicted_label) as total_predicted_purchases FROM ml.PREDICT(MODEL `bqml_lab.sample_model`, ( SELECT * FROM `bqml_lab.july_data`)) GROUP BY fullVisitorId ORDER BY total_predicted_purchases DESC LIMIT 10;

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

一个包含 3 列、10 行的表,其中显示了每个完整访问者 ID 的总购买量预测数据

结束实验

完成实验后,请点击结束实验。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. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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