使用 Vertex AI 构建 AutoML 预测模型

使用 Vertex AI 构建 AutoML 预测模型

关于此 Codelab

subject上次更新时间:6月 25, 2021
account_circleKarl Weinmeister 编写

1. 概览

在本实验中,您将执行以下操作:

  • 创建托管式数据集
  • 从 Google Cloud Storage 存储分区导入数据
  • 更新列元数据,以便与 AutoML 搭配使用
  • 使用预算和优化目标等选项训练模型
  • 进行在线批量预测

2. 查看数据

本实验使用 BigQuery 公共数据集中的爱荷华州酒类销售数据集中的数据。此数据集包含自 2012 年以来美国爱荷华州的酒类批发购买数据。

您可以选择查看数据集来查看原始数据。如需访问该表,请在左侧导航栏中依次前往 bigquery-public-datasets 项目、iowa_liquor_sales 数据集和 sales 表。您可以选择预览,查看数据集中的部分行。

f07c88368e7445c6.png

在本实验中,我们已经完成了一些基本的数据预处理,按天对购买交易进行了分组。我们将使用从 BigQuery 表中提取的 CSV 文件。CSV 文件中的列如下所示:

  • ds:日期
  • y:当天的所有购买交易的总金额(以美元为单位)
  • holiday:一个布尔值,用于指示相应日期是否为美国节假日
  • id:时间序列标识符(用于支持多个时间序列,例如按商店或按商品)。在本例中,我们只是要预测一个时序中的总体购买次数,因此每行的 ID 都设置为 0。

3. 导入数据

第 1 步:前往 Vertex AI 数据集

通过 Cloud 控制台的左侧导航栏访问 Vertex AI 菜单中的数据集

d8f26bfce50bfdb5.png

第 2 步:创建数据集

创建新数据集,选择表格数据,然后选择预测问题类型。选择名称 iowa_daily 或您喜欢的其他名称。

4efeaebfd7845b9c.png

第 3 步:导入数据

下一步是将数据导入数据集。选择“从 Cloud Storage 中选择 CSV 文件”选项。然后,前往 AutoML Demo Alpha 存储分区中的 CSV 文件,粘贴 automl-demo-240614-lcm/iowa_liquor/iowa_daily.csv

4. 训练模型

第 1 步:配置模型功能

几分钟后,AutoML 会通知您导入已完成。此时,您可以配置模型功能。

  • 选择时序标识符列作为 id。我们的数据集中只有一个时间序列,因此这只是一个形式。
  • 选择要设为 ds时间列

然后,选择生成统计信息。此过程完成后,您将看到缺失百分比不同值统计信息。此过程可能需要几分钟时间,您可以根据需要继续执行下一步。

第 2 步:训练模型

选择训练模型以开始训练流程。确保已选择 AutoML,然后点击继续

5028ec6f242dfa6a.png

第 3 步:定义模型

  • 选择目标列,将其设为 y。这是我们要预测的值。
  • 如果之前尚未设置,请将序列标识符列设置为 id,并将时间戳列设置为 ds
  • 数据粒度设置为,并将预测范围设置为 7。此字段用于指定模型可以预测的未来时间段数。
  • 上下文窗口设置为 7 天。模型将使用过去 30 天的数据进行预测。较短的窗口和较长的窗口各有优缺点,一般建议选择介于预测范围 1-10 倍之间的值。
  • 勾选将测试数据集导出到 BigQuery 旁边的复选框。您可以将其留空,系统会自动在您的项目中创建数据集和表(或指定您选择的位置)。
  • 选择继续

8d2f34779ba49bb1.png

第 4 步:设置训练选项

在此步骤中,您可以详细指定模型训练方式。

  • 节假日列设置为在预测时可用,因为我们提前知道给定日期是否为节假日。
  • 优化目标更改为 MAE。与均方误差相比,MAE(平均绝对误差)对离群值的稳健性更强。由于我们使用的是可能会出现剧烈波动每日购买数据,因此 MAE 是合适的指标。
  • 选择继续

9557c92be32a1987.png

第 5 步:开始训练

设置您选择的预算。在这种情况下,1 个节点时足以训练模型。然后,开始训练流程。

第 6 步:评估模型

训练过程可能需要 1-2 小时才能完成(包括任何额外的设置时间)。训练完成后,您将收到一封电子邮件。准备就绪后,您可以查看所创建模型的准确率。

5. 预测

第 1 步:查看测试数据的预测结果

前往 BigQuery 控制台,查看测试数据的预测结果。在您的项目中,系统会自动创建一个新数据集,其命名方案为:export_evaluated_data_items + <模型名称> + <时间戳>。在该数据集中,您会找到 evaluated_data_items 表,以便查看预测结果。

此表包含以下几个新列:

  • predicted_on_[日期列]:进行预测的日期。例如,如果 predicted_on_ds 为 11/4,而 ds 为 11/8,则表示我们预测的是 4 天后的情况。
  • predicted_[目标列].tables.value:预测值

9800c7c67d93db03.png

第 2 步:执行批量预测

最后,您需要使用模型进行预测。

输入文件包含要预测的日期的空值以及历史数据:

ds

holiday

id

y

2020 年 5 月 15 日

0

0

1751315.43

5/16/20

0

0

0

2020 年 5 月 17 日

0

0

0

2020 年 5 月 18 日

0

0

1612066.43

2020 年 5 月 19 日

0

0

1773885.17

2020 年 5 月 20 日

0

0

1487270.92

5/21/20

0

0

1024051.76

5/22/20

0

0

1471736.31

5/23/20

0

0

<空>

2020 年 5 月 24 日

0

0

<空>

5/25/20

1

0

<空>

5/26/20

0

0

<空>

2020 年 5 月 27 日

0

0

<空>

2020 年 5 月 28 日

0

0

<空>

2020 年 5 月 29 日

0

0

<空>

在 AI Platform(整合版)左侧导航栏中,您可以从批量预测项创建新的批量预测。

我们在此存储分区中为您创建了一个输入文件示例:automl-demo-240614-lcm/iowa_liquor/iowa_daily_automl_predict.csv

您可以提供此源文件位置。然后,您可以选择将预测结果导出到云存储位置(以 CSV 格式)或导出到 BigQuery。在此实验中,请选择 BigQuery,然后选择您的 Google Cloud 项目 ID

22e808dd5cbd4224.png

批量预测过程需要几分钟时间。完成后,您可以点击相应批量预测作业以查看详细信息,包括导出位置。在 BigQuery 中,您需要在左侧导航栏中前往相应项目 / 数据集 / 表格,才能访问预测结果。

该作业将在 BigQuery 中创建两个不同的表。一个将包含所有存在错误的行,另一个将包含预测结果。以下是“预测”表的输出示例:

9ead59dcc9ad1521.png

第 3 步:总结

恭喜,您已成功使用 AutoML 构建并训练了一个预测模型。在本实验中,我们介绍了数据导入、模型构建和预测。

您已准备好构建自己的预测模型!