Amazon Forecast 不再向新买家开放。Amazon Forecast 的现有客户可以继续照常使用该服务。了解更多
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用相关时间序列数据集
相关时间序列数据集包含目标时间序列数据集中未包含的时间序列数据,可能会提高预测器的准确性。
例如,在需求预测领域中,目标时间序列数据集会包括 timestamp
和 item_id
维度,而互补的相关时间序列数据集还包括以下互补特性:item price
、promotion
和 weather
。
相关时间序列数据集最多可以包含 10 个预测维度(目标时间序列数据集中相同的预测维度)和 13 个相关的时间序列特性。
Python 笔记本
有关使用相关时间序列数据集的 step-by-step 指南,请参阅合并相关时间序列
历史和前瞻性相关时间序列
注意
预测范围内包含任何值的相关时间序列被视为前瞻性时间序列。
相关时间序列有以下两种形式:
-
历史时间序列:预测范围内没有数据点的时间序列。
-
前瞻性时间序列:预测范围内有数据点的时间序列。
历史相关时间序列包含预测范围之前的数据点,但不包含预测范围内的任何数据点。前瞻性相关时间序列包含预测范围之前和之内的数据点。
相关时间序列数据集验证
相关时间序列数据集具有以下限制:
-
它不能包括目标时间序列中的目标值。
-
它必须包含
item_id
和timestamp
维度,并且必须至少包含一个相关特性(例如price
)。 -
相关时间序列特性数据必须为
int
或float
数据类型。 -
为了使用整个目标时间序列,目标时间序列数据集中的所有项目还必须包含在相关时间序列数据集中。如果相关时间序列仅包含目标时间序列中的项目子集,则模型创建和预测生成将仅限于该特定项目子集。
例如,如果目标时间序列包含 1000 个项目,而相关时间序列数据集仅包含 100 个项目,则模型和预测将仅基于这 100 个项目。
-
对于在相关时间序列数据集中记录数据的频率,必须与您希望生成预测的时间间隔(预测粒度)匹配。
例如,如果要按照每周粒度生成预测数据,则在相关时间序列中记录数据的频率也必须为每周记录,即使在目标时间序列中记录数据的频率是每天也是如此。
-
相关时间序列数据集中每个项目的数据必须在目标时间序列数据集中对应
item_id
的起始timestamp
之时或之前开始。例如,如果
socks
的目标时间序列数据从 2019-01-01 开始,而shoes
的目标时间序列数据从 2019-02-01 开始,则socks
的相关时间序列数据必须在 2019-01-01 当天或之前开始,shoes
的数据必须在 2019-02-01 当天或之前开始。 -
对于前瞻性相关时间序列数据集,每个项目的最后一个时间戳必须在用户指定的预测时段(称为预测范围)中最后一个时间戳之时。
在下面的示例相关时间序列文件中,袜子和鞋子的
timestamp
数据的结束时间必须在 2019-07-01(最后记录的时间戳)加上 预测范围之时或之后。如果目标时间序列中的数据频率是每天,而预测范围是 10 天,则前瞻性相关时间序列文件中必须提供每日数据点,直到 2019-07-11。 -
对于历史相关时间序列数据集,每个项目的最后一个时间戳必须与目标时间序列中的最后一个时间戳相匹配。
在下面的示例相关时间序列文件中,袜子和鞋子的
timestamp
数据的结束时间必须为 2019-07-01(最后记录的时间戳)。 -
相关时间序列数据集中提供的 Forecast 维度必须等于目标时间序列数据集中指定的维度或是该维度的子集。
-
相关时间序列不能有缺失值。有关相关时间序列数据集中缺失值的信息,请参阅处理缺失值。
示例:前瞻性相关时间序列文件
下表显示了正确配置的相关时间序列数据集文件。在本示例中,我们假设满足以下条件:
-
目标时间序列数据集中的最后一个数据点是在 2019-07-01 记录的。
-
预测范围是 10 天。
-
预测粒度为每天 (
D
)。
“…
”行表示前一行和后一行之间的所有数据点。
timestamp |
item_id |
store |
price |
---|---|---|---|
2019-01-01 | 袜子 | NYC | 10 |
2019-01-02 | 袜子 | NYC | 10 |
2019-01-03 | 袜子 | NYC | 15 |
... |
|||
2019-06-01 | 袜子 | NYC | 10 |
... |
|||
2019-07-01 | 袜子 | NYC | 10 |
... |
|||
2019-07-11 | 袜子 | NYC | 20 |
2019-01-05 | 袜子 | SFO | 45 |
... |
|||
2019-06-05 | 袜子 | SFO | 10 |
... |
|||
2019-07-01 | 袜子 | SFO | 10 |
... |
|||
2019-07-11 | 袜子 | SFO | 30 |
2019-02-01 | 鞋子 | ORD | 50 |
... |
|||
2019-07-01 | 鞋子 | ORD | 75 |
... |
|||
2019-07-11 | 鞋子 | ORD | 60 |
示例:预测粒度
下表显示了使用每周粒度预测时的目标时间序列和相关时间序列的兼容数据记录频率。由于无法聚合相关时间序列数据集中的数据,Forecast 仅接受与所选预测粒度相同的相关时间序列数据频率。
目标输入数据频率 | 相关时间序列频率 | 预测粒度 | Forecast 是否支持? |
---|---|---|---|
每天 | 每周 | 每周 | 是 |
每周 | 每周 | 每周 | 是 |
不适用 | 每周 | 每周 | 是 |
每天 | 每天 | 每周 | 否 |
传统预测器和相关时间序列
注意
要将现有预测变量升级到 AutoPredictor,请参见 正在升级到 AutoPredictor
使用传统预测变量时,在使用 CNN-Q R、Deepar+ 和 Prophe t 算法训练预测变量时,可以使用相关的时间序列数据集。NPTS、ARIMA、且ETS不接受相关的时间序列数据。
下表显示了每种 Amazon Forecast 算法接受的相关时间序列的类型。
CNN-二维码 | DeepAR+ | Prophet | NPTS | ARIMA | ETS | |
---|---|---|---|---|---|---|
历史相关时间序列表 |
||||||
前瞻性相关时间序列 |
使用 AutoML 时,您可以提供历史和前瞻性相关时间序列数据,而 Forecast 将仅在适用的情况下使用这些时间序列。
如果您提供前瞻性的相关时间序列数据,Forecast 将使用带有 CNN-QR、Deepar+ 和 Prophet 的相关数据,并且不会将相关数据与、和一起NPTS使用。ARIMA ETS如果提供了历史相关的时间序列数据,Forecast 将使用带有 CNN-QR 的相关数据,并且不会将相关数据与 Deepar+、Prophet、NPTS、ARIMA和一起使用。ETS