关于此 Codelab
1. 概览
在本实验中,您将执行以下操作:
- 创建托管式数据集
- 从 Google Cloud Storage 存储分区导入数据
- 更新列元数据,以便与 AutoML 搭配使用
- 使用预算和优化目标等选项训练模型
- 进行在线批量预测
2. 查看数据
本实验使用 BigQuery 公共数据集中的爱荷华州酒类销售数据集中的数据。此数据集包含自 2012 年以来美国爱荷华州的酒类批发购买数据。
您可以选择查看数据集来查看原始数据。如需访问该表,请在左侧导航栏中依次前往 bigquery-public-datasets 项目、iowa_liquor_sales 数据集和 sales 表。您可以选择预览,查看数据集中的部分行。
在本实验中,我们已经完成了一些基本的数据预处理,按天对购买交易进行了分组。我们将使用从 BigQuery 表中提取的 CSV 文件。CSV 文件中的列如下所示:
- ds:日期
- y:当天的所有购买交易的总金额(以美元为单位)
- holiday:一个布尔值,用于指示相应日期是否为美国节假日
- id:时间序列标识符(用于支持多个时间序列,例如按商店或按商品)。在本例中,我们只是要预测一个时序中的总体购买次数,因此每行的 ID 都设置为 0。
4. 训练模型
第 1 步:配置模型功能
几分钟后,AutoML 会通知您导入已完成。此时,您可以配置模型功能。
- 选择时序标识符列作为 id。我们的数据集中只有一个时间序列,因此这只是一个形式。
- 选择要设为 ds 的时间列。
然后,选择生成统计信息。此过程完成后,您将看到缺失百分比和不同值统计信息。此过程可能需要几分钟时间,您可以根据需要继续执行下一步。
第 2 步:训练模型
选择训练模型以开始训练流程。确保已选择 AutoML,然后点击继续。
第 3 步:定义模型
- 选择目标列,将其设为 y。这是我们要预测的值。
- 如果之前尚未设置,请将序列标识符列设置为 id,并将时间戳列设置为 ds。
- 将数据粒度设置为天,并将预测范围设置为 7。此字段用于指定模型可以预测的未来时间段数。
- 将上下文窗口设置为 7 天。模型将使用过去 30 天的数据进行预测。较短的窗口和较长的窗口各有优缺点,一般建议选择介于预测范围 1-10 倍之间的值。
- 勾选将测试数据集导出到 BigQuery 旁边的复选框。您可以将其留空,系统会自动在您的项目中创建数据集和表(或指定您选择的位置)。
- 选择继续。
第 4 步:设置训练选项
在此步骤中,您可以详细指定模型训练方式。
- 将节假日列设置为在预测时可用,因为我们提前知道给定日期是否为节假日。
- 将优化目标更改为 MAE。与均方误差相比,MAE(平均绝对误差)对离群值的稳健性更强。由于我们使用的是可能会出现剧烈波动每日购买数据,因此 MAE 是合适的指标。
- 选择继续。
第 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:预测值
第 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。
批量预测过程需要几分钟时间。完成后,您可以点击相应批量预测作业以查看详细信息,包括导出位置。在 BigQuery 中,您需要在左侧导航栏中前往相应项目 / 数据集 / 表格,才能访问预测结果。
该作业将在 BigQuery 中创建两个不同的表。一个将包含所有存在错误的行,另一个将包含预测结果。以下是“预测”表的输出示例:
第 3 步:总结
恭喜,您已成功使用 AutoML 构建并训练了一个预测模型。在本实验中,我们介绍了数据导入、模型构建和预测。
您已准备好构建自己的预测模型!