非参数时间序列 (NPTS) 算法 - Amazon Forecast

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

非参数时间序列 (NPTS) 算法

Amazon Forecast 非参数时间序列 (NPTS) 算法是可扩展的概率基线预测器。它通过从过去的观察中采样来预测给定时间序列的未来值分布。预测受观察的值的限制。当时间序列是间歇性的(或稀疏的,包含许多 0)和突发的时,NPTS 特别有用。例如,预测时间序列具有许多低计数的单个项目的需求。Amazon Forecast 提供 NPTS 的变体,这些变体在所采样的过去的观察及其采样方式上有所不同。要使用 NPTS 变体,请选择超参数设置。

NPTS 的工作原理

与经典预测方法(如指数平滑法 (ETS) 和自回归积分滑动平均模型 (ARIMA))类似,NPTS 分别为每个时间序列生成预测。数据集中的时间序列可以具有不同的长度。观察可用的时间点称为训练范围,需要预测的时间点称为预测范围。

Amazon Forecast NPTS 预测程序具有以下变体:NPTS、季节性 NPTS、气候预测程序以及季节性气候预测程序。

NPTS

在该变体中,通过从时间序列的训练范围中的所有观察中采样来生成预测。但是,此变体不是从所有观察中均匀地采样,而是根据与需要预测的当前时间步长的距离,为每个过去的观察分配权重。特别是,它使用的权重根据过去观察的距离呈指数衰减。通过这种方式,来自最近过去的观察结果的采样概率远高于远处过去的观测结果。这就假定,对未来而言,最近的过去比遥远的过去更具指示性。您可以使用 exp_kernel_weights 超参数控制权重的衰减量。

要在 Amazon Forecast 中使用此 NPTS 变体,请将 use_seasonal_model 超参数设置为 False 并接受所有其他默认设置。

季节性 NPTS

季节性 NPTS 变体类似于 NPTS,只不过它不从所有观察中采样,而是仅使用来自过去季节 的观察。默认情况下,季节由时间序列的粒度确定。例如,对于每小时时间序列,要预测小时 t,此变体从对应于前几天的小时 t 的观察中采样。与 NPTS 类似,前一天的小时 t 处的观察获得的权重高于前几天的小时 t 处的观察。有关如何根据时间序列的粒度确定季节性的更多信息,请参阅季节性特征

气候预测程序

气候预测程序变体以均匀概率对所有过去的观测结果进行采样。

要使用气候预测程序,请将 kernel_type 超参数设置为 uniform,并将 use_seasonal_model 超参数设置为 False。接受所有其他超参数的默认设置。

季节性气候预测程序

与季节性 NPTS 类似,季节性气候预测程序对过去季节的观察进行采样,但以均匀概率对其进行采样。

要使用季节性气候预测程序,请将 kernel_type 超参数设置为 uniform。接受所有其他超参数的所有其他默认设置。

季节性特征

要为季节性 NPTS 和季节性气候预测程序确定季节对应的特征,请使用下表中列出的特征。此表根据粒度列出了支持的基本时间频率的派生特征。Amazon Forecast 包含这些特征时间序列,因此您不必提供它们。

时间序列的频率 用于确定季节性的特征
分钟 一小时中的分钟
小时 一天中的小时
一周中的某天
一月中的某天
月份 一年中的某天

当使用 Amazon Forecast NPTS 算法时,请考虑以下准备数据和实现最佳结果的最佳实践:

  • 由于 NPTS 单独为每个时间序列生成预测,因此,请在调用模型进行预测时提供整个时间序列。此外,接受 context_length 超参数的默认值。这会导致算法使用整个时间序列。

  • 如果您更改 context_length(因为训练数据太长),请确保它足够大并涵盖过去几个季节。例如,对于每日时间序列,此值必须至少为 365 天(前提是您拥有该数据量)。

NPTS 超参数

下表列出了可在 NPTS 算法中使用的超参数。

参数名称 描述
context_length 模型用于进行预测的过去时间点的数量。默认情况下,它使用训练范围中的所有时间点。通常,此超参数的值应该很大,并且应涵盖过去几个季节。例如,对于每日时间序列,此值必须至少为 365 天。
有效值

正整数

默认值

训练时间序列的长度

kernel_type 用于定义用来对过去观察进行采样的权重的内核。
有效值

exponentialuniform

默认值

exponential

exp_kernel_weights

仅当 kernel_typeexponential 时才有效。

内核的扩展参数。对于在遥远的过去向观察提供的权重的更快(指数)衰减,使用大的值。

有效值

正浮点数

默认值

0.01

use_seasonal_model 是否使用季节性变体。
有效值

TrueFalse

默认值

True

use_default_time_features

仅适用于季节性 NPTS季节性气候预测器变体。

是否根据时间序列的粒度使用季节性特征来确定季节性。

有效值

TrueFalse

默认值

True