预测模型的训练参数

本页面详细介绍了预测模型训练中使用的参数。如需了解如何训练预测模型,请参阅训练预测模型使用预测表格工作流训练模型

模型训练方法

您可以选择以下方法来训练模型:

时序密集编码器 (TiDE):基于 DNN 的优化型密集编码器-解码器模型。模型质量出色,且训练和推断快速,尤其是对于较长的上下文和范围。 了解详情

时间融合转换器 (TFT):基于注意力的 DNN 模型,旨在通过使该模型与常规多水平预测任务保持一致,从而实现高准确度和可解释性。了解详情

AutoML (L2L):非常适合各种用例。了解详情

Seq2Seq+:非常适合进行实验。该算法可能比 AutoML 收敛更快,因为它的架构更简单,并且使用较小的搜索空间。我们的实验发现,在时间预算较少的情况下以及在小于 1 GB 的数据集上,Seq2Seq+ 性能较好。

特征类型和预测时的可用性

用于训练预测模型的每一列都必须具有特性或协变量类型。在预测时,协变量还会进一步被指定为可用或不可用。

系列类型 预测时可用 说明 示例 API 字段
属性 可用 属性是不会随时间变化的静态特征。 商品颜色、商品说明。 time_series_attribute_columns
协变量 可用

预计会随时间变化的外生变量。预测时可用的协变量是先行指标。

您必须为预测范围内的每个时间点提供此列的预测数据。

节假日、计划的促销或活动。 available_at_forecast_columns
协变量 不可用 预测时不可用的协变量。创建预测时,您无需为这类特征提供值。 实际的天气。 unavailable_at_forecast_columns

详细了解功能可用性与预测范围、上下文窗口和预测窗口之间的关系。

预测范围、上下文窗口和预测窗口

预测特征分为静态属性和时间变体协变量

训练预测模型时,您必须指定要捕获的最重要的协变量训练数据。该数据以预测时段的形式表示,是一系列包含以下部分的行:

  • 上下文,即截至到预测时的历史数据。
  • 预测范围,即用于预测的行。

窗口中的行共同定义了一个用作模型输入的时序实例,Vertex AI 使用该模型输入来进行训练、评估和预测。 用于生成窗口的行是预测范围的第一行,并且在时序中唯一标识窗口。

预测范围确定模型预测每行预测数据的目标值的未来时间。

上下文窗口设置模型在训练期间的回溯时间(用于预测)。换句话说,对于每个数据点,上下文窗口会确定模型查找回溯模式的时间。 了解查找适合上下文窗口的值的最佳实践

例如,如果上下文窗口 = 14预测范围 = 7,则每个窗口示例将具有 14 + 7 = 21 行。

预测时的可用性

预测协变量可分为预测时可用的协变量和预测时不可用的协变量。

在处理预测时可用的协变量时,Vertex AI 会考虑上下文窗口和预测范围内的协变量值,用于训练、评估和预测。在处理预测时不可用的协变量时,Vertex AI 会考虑上下文窗口中的协变量值,但明确排除预测范围中的协变量值。

滚动窗口策略

Vertex AI 使用滚动窗口策略根据输入数据生成预测窗口。默认策略是计数

  • 计数。 Vertex AI 生成的窗口数量不得超过用户提供的最大值。如果输入数据集中的行数小于最大窗口数,则每一行用于生成一个窗口。否则,Vertex AI 会执行随机采样来选择行。最大窗口数的默认值为 100,000,000。最大窗口数不能超过 100,000,000
  • 步长。 Vertex AI 使用每 X 输入行中的一行来生成一个窗口,最多可生成 1 亿个窗口。此选项对季节性或定期预测非常有用。例如,如果想要将预测限制为一周中的某一天,可以将步幅设置为 7。此值介于 11000 之间。
  • 。 您可以在输入数据中添加一列,其中的值为 TrueFalse。Vertex AI 会为该列值为 True 的每个输入行生成一个窗口。只要 True 行的总数少于 100,000,000,就可以按任何顺序设置 TrueFalse 值。首选布尔值,但也接受字符串值。字符串值不区分大小写。

通过生成少于默认 100,000,000 窗口的值,您可以缩短预处理和模型评估所需的时间。此外,窗口降采样使您能够更好地控制训练期间看到的窗口分布。如果使用正确,可能会导致结果更加优化且更加一致。

在训练和预测期间如何使用上下文窗口和预测范围

假设您的数据每月收集一次,上下文窗口为 5 个月且预测范围为 5 个月。使用 12 个月的数据训练模型将产生以下输入和预测结果:

  • [1-5]:[6-10]
  • [2-6]:[7-11]
  • [3-7]:[8-12]

训练后,该模型可用于预测第 13 个月到第 17 个月:

  • [8-12]:[13-17]

该模型仅使用上下文窗口中的数据进行预测。您提供的非上下文窗口中的任何数据都会忽略。

收集第 13 个月的数据后,这些数据可用于预测到第 18 个月:

  • [9-13]:[14-18]

只要能获得良好的结果,就可以继续预测未来的数据。最终,您可以使用新数据重新训练模型。例如,如果您在额外增加 6 个月的数据后重新训练模型,则训练数据将按如下所示使用:

  • [2-6]:[7-11]
  • [3-7]:[8-12]
  • [4-8]:[9-13]
  • [5-9]:[10-14]
  • [6-10]:[11-15]
  • [7-11]:[12-16]
  • [8-12]:[13-17]
  • [9-13]:[14-18]

然后,您可以使用该模型来预测第 19 个月到第 23 个月:

  • [14-18]:[19-23]

预测模型的优化目标

在训练模型时,Vertex AI 会根据模型类型和用于目标列的数据类型选择默认优化目标。下表提供了有关预测模型比较适合解决哪些问题的一些详细信息:

优化目标 API 值 在什么情况下使用该目标
均方根误差 minimize-rmse 最大限度降低均方根误差 (RMSE)。准确捕获更多极值,并在汇总预测时减少偏差。默认值。
MAE minimize-mae 最大限度降低平均绝对误差 (MAE)。将极值视为对模型影响较小的离群值。
RMSLE minimize-rmsle 最大限度降低均方根对数误差 (RMSLE)。根据相对误差而不是绝对误差来判错。适用于预测值和实际值都非常大的情况。
均方根百分比误差 minimize-rmspe 最大限度降低均方根误差百分比 (RMSPE)。准确捕获大量值。与 RMSE 类似,但以目标规模为基础。在值的范围很大时非常有用。
WAPE minimize-wape-mae 最大限度地减少加权绝对百分比误差 (WAPE) 和平均绝对误差 (MAE)。在实际值较低时非常有用。
分位数损失 minimize-quantile-loss 尽量减少已定义的分位数的缩放弹球损失,以量化估算值的不确定性。分位数预测会量化预测的不确定性,以便衡量预测结果在某特定范围内的可能性。

节假日区域

在某些使用场景中,预测数据可能会在与区域性节假日相对应的日期出现不正常的行为。如果您希望模型考虑此情况,请选择与输入数据对应的一个或多个地理区域。在训练期间,Vertex AI 会根据时间列中的日期和指定的地理区域在模型中创建节假日分类特征。

以下是美国的日期和节假日分类特征的摘录。请注意,系统会为主要日期、一个或多个节假日前以及一个或多个节假日后的日期分配分类特征。例如,2013 年美国母亲节的主要日期是 5 月 12 日。系统将母亲节特征分配给主要日期、六个节假日前和一个节假日后的日期。

日期 节假日分类特征
2013-05-06母亲节
2013-05-07母亲节
2013-05-08母亲节
2013-05-09母亲节
2013-05-10母亲节
2013-05-11母亲节
2013-05-12母亲节
2013-05-13母亲节
2013-05-26US_MemorialDay
2013-05-27US_MemorialDay
2013-05-28US_MemorialDay

节假日区域的可接受值包括:

  • GLOBAL:检测所有世界区域的节假日。
  • NA:检测北美洲的节假日。
  • JAPAC:检测日本和亚太地区的节假日。
  • EMEA:检测欧洲、中东和非洲的节假日。
  • LAC:检测拉丁美洲和加勒比地区的节假日。
  • ISO 3166-1 国家/地区代码:检测各个国家/地区的节假日。

如需查看每个地理区域的节假日日期的完整列表,请参阅 BigQuery 中的 holidays_and_events_for_forecasting 表。您可以按照以下步骤通过 Google Cloud 控制台打开此表:

  1. 在 Google Cloud 控制台的 BigQuery 部分中,进入 BigQuery Studio 页面。

    进入 BigQuery Studio

  2. “探索器”面板中,打开 bigquery-public-data 项目。如果您找不到此项目或者想要了解详情,请参阅打开公共数据集
  3. 打开 ml_datasets 数据集。
  4. 打开 holidays_and_events_for_forecasting 表。

以下 holidays_and_events_for_forecasting 表中的一段摘录:

用于预测的节假日示例