arrow_back

BigQuery ML 使用入门

登录 加入
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

BigQuery ML 使用入门

Lab 45 分钟 universal_currency_alt No cost show_chart 入门级
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP247

Google Cloud 自定进度实验

概览

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

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

学习内容

在本实验中,您将学习如何完成以下操作:

  • 创建 BigQuery 数据集
  • 在 BigQuery 中创建、评估和使用机器学习模型

前提条件

为充分提升学习效果,您应该先掌握有关 SQL 或 BigQuery 的基础知识。

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。我们会为您提供新的临时凭据,让您可以在实验规定的时间内用来登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:如果您已有自己的个人 Google Cloud 账号或项目,请不要在此实验中使用,以避免您的账号产生额外的费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧是实验详细信息面板,其中包含以下各项:

    • 打开 Google 控制台按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google 控制台。 该实验会启动资源并打开另一个标签页,显示登录页面。

    提示:请将这些标签页安排在不同的窗口中,并将它们并排显示。

    注意:如果您看见选择帐号对话框,请点击使用其他帐号
  3. 如有必要,请从实验详细信息面板复制用户名,然后将其粘贴到登录对话框中。点击下一步

  4. 请从实验详细信息面板复制密码,然后将其粘贴到欢迎对话框中。点击下一步

    重要提示:您必须使用左侧面板中的凭据。请勿使用您的 Google Cloud Skills Boost 凭据。 注意:在本次实验中使用您自己的 Google Cloud 帐号可能会产生额外费用。
  5. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于该帐号为临时帐号,请勿添加帐号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Cloud 控制台。

注意:您可以点击左上角的导航菜单来查看列有 Google Cloud 产品和服务的菜单。 “导航菜单”图标

打开 BigQuery 控制台

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

您会看到欢迎在 Cloud 控制台中使用 BigQuery 消息框,其中提供了指向快速入门指南和版本说明的链接。

  1. 点击完成

BigQuery 控制台即会打开。

任务 1. 创建数据集

  1. 如需创建数据集,点击项目 ID 旁边的查看操作图标,然后选择创建数据集

“创建数据集”选项

  1. 接下来,将数据集 ID 命名为 bqml_lab,然后点击创建数据集

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您成功完成了任务,系统会给出评分。

创建 BigQuery 数据集

任务 2. 创建模型

现在进行下一个任务。

  1. 进入 BigQuery 编辑器,输入或粘贴以下查询,创建一个预测访问者是否会进行交易的模型:
#standardSQL CREATE OR REPLACE MODEL `bqml_lab.sample_model` OPTIONS(model_type='logistic_reg') AS 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 100000;
  1. 点击运行

这里用到了访问者设备的操作系统、提到的设备是否为移动设备、访问者所在的国家/地区以及网页浏览次数,作为判断是否进行了交易的标准。

在此例中,bqml_lab 是数据集的名称,sample_model 是模型的名称。指定的模型类型是二进制逻辑回归。在此例中,label 是要匹配的目标。

注意:如果您只对 1 列中的数据感兴趣,这是一种设置 input_label_cols 的替代方法。

训练数据限制为从 2016 年 8 月 1 日到 2017 年 6 月 30 日收集的数据。这样的目的是保留最后一个月的数据用于“预测”。同时进一步限制为 100,000 个数据点,以节省一点时间。

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

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您成功完成了任务,系统会给出评分。

创建一个预测访问者交易的模型

(可选)模型信息和训练统计数据

如果有兴趣,可以展开 bqml_lab 数据集,然后在界面中点击 sample_model 模型来获取有关模型的信息。在详细信息标签页下,可以找到一些基础的模型信息和用于生成模型的训练选项。在训练下,应该可以看到一个表或多个图表,具体取决于“查看方式”设置:

训练表

训练图表

任务 3. 评估模型

  • 将之前的查询替换为以下查询,然后点击运行
#standardSQL SELECT * FROM ml.EVALUATE(MODEL `bqml_lab.sample_model`, ( 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 '20170701' AND '20170801'));

如果与线性回归模型搭配使用,以上查询会返回以下列:

  • mean_absolute_errormean_squared_errormean_squared_log_error
  • median_absolute_errorr2_scoreexplained_variance

如果与逻辑回归模型搭配使用,以上查询会返回以下列:

  • precisionrecall
  • accuracyf1_score
  • log_lossroc_auc

请参考机器学习术语表或执行 Google 搜索来了解这些指标中每一个的计算方式以及其含义。

您将认识到,查询的 SELECT FROM 部分与训练中使用的一样。WHERE 部分反映了时间帧的变化,FROM 部分显示了您正在调用 ml.EVALUATE

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

逻辑回归模型查询结果

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您成功完成了任务,系统会给出评分。

评估此模型

任务 4. 使用模型

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

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

  • 将之前的查询替换为以下查询,然后点击运行
#standardSQL SELECT country, SUM(predicted_label) as total_predicted_purchases FROM ml.PREDICT(MODEL `bqml_lab.sample_model`, ( SELECT IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(totals.pageviews, 0) AS pageviews, IFNULL(geoNetwork.country, "") AS country FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170801')) GROUP BY country ORDER BY total_predicted_purchases DESC LIMIT 10;

这个查询与前一部分介绍的评估查询非常类似。您将使用 ml.PREDICT(而非 ml.EVALUATE),查询的 BigQuery ML 部分会使用标准 SQL 命令进行封装。对于此实验,您关注的是国家/地区以及每个国家/地区的购买总量,这就是为什么使用 SELECTGROUP BYORDER BY. LIMIT 用来确保只获取排名前十的结果。

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

10 行国家/地区,其中列出每个国家/地区预测的购买量

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您成功完成了任务,系统会给出评分。

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

预测每位用户的购买量

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

  • 将之前的查询替换为以下查询,然后点击运行
#standardSQL SELECT fullVisitorId, SUM(predicted_label) as total_predicted_purchases FROM ml.PREDICT(MODEL `bqml_lab.sample_model`, ( SELECT IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(totals.pageviews, 0) AS pageviews, IFNULL(geoNetwork.country, "") AS country, fullVisitorId FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170801')) GROUP BY fullVisitorId ORDER BY total_predicted_purchases DESC LIMIT 10;

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

10 行 fullVisitorId,其中列出每个访问者预测的购买量

验证您已完成的任务

点击检查我的进度,验证您已完成的任务。如果您成功完成了任务,系统会给出评分。

预测每位用户的购买量

任务 5. 检验您的掌握情况

下面的选择题可加强您对本实验所涉概念的理解。请尽您所能回答问题。

恭喜!

您使用 BigQuery ML 创建了一个二元逻辑回归模型、评估该模型,并使用该模型进行了预测。

后续步骤/了解详情

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

上次更新手册的时间:2024 年 2 月 22 日

上次测试实验的时间:2024 年 2 月 22 日

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