天气指数 - Amazon Forecast

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

天气指数

Amazon Forecast 天气指数是一项内置特征化,用于将天气历史信息和预计信息纳入到模型中。天气指数对零售用例非常有用,在此类用例中,温度和降水会大大影响产品需求。

启用天气指数后,如果 Forecast 在预测器训练期间发现精度有所提高,则它只会将此天气特征化应用于时间序列。如果在回测期间用天气信息附加时间序列并不能提高其预测精度,则 Forecast 不会将天气指数应用于此特定的时间序列。

要应用天气指数,您的目标时间序列数据集和所有相关时间序列数据集中都必须包含地理位置属性。您还需要为目标时间序列时间戳指定时区。有关数据集要求的更多信息,请参阅条件和限制

Python 笔记本

有关使用天气指数的分步指南,请参阅纽约出租车:含天气指数的 Amazon Forecast

启用天气指数

在预测器训练阶段启用天气指数。在使用 CreateAutoPredictor 操作时,天气指数包含在数据类型 AdditionalDataset 中。

在启用天气指数之前,您的目标时间序列和相关时间序列数据集中必须包含地理位置属性,并且您必须为时间戳定义时区。有关更多信息,请参阅添加地理位置信息指定时区

您可以使用 Forecast 控制台或 Forecast 软件开发工具包 (SDK) 来启用天气指数。

Console

启用天气指数

  1. 登录到 AWS Management Console 并打开 Amazon Forecast 控制台,网址:https://console.aws.amazon.com/forecast/

  2. 数据集组中,选择您的数据集组。

  3. 在导航窗格中,选择预测器

  4. 选择训练新预测器

  5. 选择启用天气指数

SDK

启用天气指数

使用 CreateAutoPredictor 操作,通过在数据类型 AdditionalDataset 中添加 "Name": "weather""Value": "true" 来启用天气指数。

"DataConfig": { ... "AdditionalDatasets": [ ... { "Name": "weather", } ] },

在数据集中添加地理位置信息

要使用天气指数,您必须在目标时间序列和相关时间序列数据集中包含每个项目的地理位置属性。此属性采用数据集架构中的属性类型 geolocation 进行定义。

数据集中的所有地理位置值都必须完全在单个区域中。这些区域是:美国(不包括夏威夷和阿拉斯加)、加拿大、南美洲、中美洲、亚太地区、欧洲以及非洲和中东。

使用以下两种格式之一指定地理位置属性:

  • 纬度和经度(所有区域)- 以十进制格式指定纬度和经度(例如:47.61_-122.33)

  • 邮政编码(仅限美国)- 指定国家/地区代码(美国),后跟 5 位数的邮政编码(例如:US_98121)

所有区域都支持纬度和经度格式。只有美国地区支持邮政编码格式。

纬度和经度界限

以下是可接受区域的纬度和经度界限:

US Region

界限:纬度(24.6、50.0)、经度(-126.0、-66.4)。

Canada Region

界限:纬度(41.0、75.0)、经度(-142.0、-52.0)。

Europe Region

界限:纬度(34.8、71.8)、经度(-12.6、44.8)。

South America Region

界限:纬度(-56.6、14.0)、经度(-82.4、-33.00)。

Asia Pacific Region

界限:纬度(-47.8、55.0)、经度(67.0、180.60)。

Central America Region

界限:纬度(6.80、33.20)、经度(-118.80、-58.20)。

Africa & Middle East Region

界限:纬度(-35.60、43.40)、经度(-18.80、-58.20)。

在数据集架构中包括地理位置

使用控制台或 CreateDataset 操作,在目标时间序列和所有相关时间序列的 JSON 架构中将位置属性类型定义为‘地理位置’。架构中的属性必须按照其在数据集中排列的顺序进行排序。

{ "Attributes":[ { "AttributeName": "timestamp", "AttributeType": "timestamp" }, { "AttributeName": "target_value", "AttributeType": "float" }, { "AttributeName": "item_id", "AttributeType": "string" }, { "AttributeName": "location", "AttributeType": "geolocation" } ] }

设置地理位置格式

地理位置属性的格式可以是邮政编码纬度和经度格式。您可以使用 Forecast 控制台或 Forecast 软件开发工具包 (SDK) 设置地理位置格式。

Console

在时间序列数据集中添加地理位置属性

  1. 登录到 AWS Management Console 并打开 Amazon Forecast 控制台,网址:https://console.aws.amazon.com/forecast/

  2. 选择 Create dataset group (创建数据集组)

  3. 架构生成器中,将地理位置的属性类型设置为 geolocation

  4. 地理位置格式的下拉列表中,选择您的位置格式。

您也可以在 JSON 格式下定义此属性,并从地理位置格式的下拉列表中选择一种位置格式。

SDK

在时间序列数据集中添加地理位置属性

使用 CreateDatasetImportJob 操作,将 GeolocationFormat 的值设置为以下值之一:

  • 纬度和经度(所有区域):"LAT_LONG"

  • 邮政编码(仅限美国):"CC_POSTALCODE"

例如,要指定纬度和经度格式,请在 CreateDatasetImportJob 请求中包含以下内容:

{ ... "GeolocationFormat": "LAT_LONG" }

指定时区

您可以让 Amazon Forecast 自动同步时区信息与地理位置属性,也可以手动为整个数据集分配一个时区。

自动同步时区与地理位置

此选项非常适合包含多个时区的时间戳且这些时间戳以当地时间表示的数据集。Forecast 根据项目的地理位置属性为目标时间序列数据集中的每个项目分配时区。

您可以使用 Forecast 控制台或 Forecast SDK 自动同步时间戳与地理位置属性。

Console

同步时区与地理位置属性

  1. 登录到 AWS Management Console 并打开 Amazon Forecast 控制台,网址:https://console.aws.amazon.com/forecast/

  2. 在导航窗格中,选择创建数据集组

  3. 数据集导入详细信息中,选择同步时区与位置

SDK

同步时区与地理位置属性

使用 CreateDatasetImportJob 操作,将 "UseGeolocationForTimeZone" 设置为 "true"

{ ... "UseGeolocationForTimeZone": "true" }

手动选择单个时区

注意

您可以手动选择美国地区加拿大地区南美洲地区中美洲地区亚太地区欧洲地区以及非洲和中东地区以外的一个时区。但是,所有地理定位值都必须仍然在其中一个区域内。

此选项非常适合所有时间戳都在单个时区内的数据集,或者所有时间戳都标准化为单个时区的数据集。使用此选项可将相同时区应用于数据集中的每个项目。

天气指数可接受以下时区:

美国地区

  • 美洲/洛杉矶

  • 美洲/菲尼克斯

  • 美洲/丹佛

  • 美洲/芝加哥

  • America/New_York

加拿大地区

  • 美洲/温哥华

  • 美洲/埃德蒙顿

  • 美洲/里贾纳

  • 美洲/温尼伯

  • 美洲/多伦多

  • 美洲/哈利法克斯

  • 美洲/圣约翰斯

欧洲地区

  • 欧洲地区/伦敦

  • 欧洲/巴黎

  • 欧洲/赫尔辛基

南美洲地区

  • 美洲/布宜诺斯艾利斯

  • 美洲/诺罗尼亚

  • 美洲/加拉加斯

亚太地区

  • 亚洲/喀布尔

  • 亚洲/卡拉奇

  • 亚洲/加尔各答

  • 亚洲/加德满都

  • 亚洲/达卡

  • 亚洲/仰光

  • 亚洲/曼谷

  • 亚洲/新加坡

  • 亚洲/首尔

  • 澳大利亚/阿德莱德

  • 澳大利亚/墨尔本

  • 澳大利亚/豪勋爵岛

  • 澳大利亚/尤克拉

  • 太平洋/诺福克岛

  • 太平洋/奥克兰

中美洲

  • 美洲/波多黎各

非洲和中东

  • 非洲/内罗毕

  • 亚洲/德黑兰

  • 亚洲/迪拜

其他

  • 太平洋/中途岛

  • 太平洋/檀香山

  • 太平洋/马克萨斯

  • 美洲/安克雷奇

  • 大西洋/佛得角

  • 亚洲/阿纳德尔

  • 太平洋/查塔姆

  • 太平洋/恩德伯里

  • 太平洋/圣诞岛

如果您数据集中的项目位于一个可接受的区域,但您的时间戳已标准化为该区域以外的时区,则请从其他列表中选择一个时区。

有关有效时区的完整名称列表,请参阅 Joda-Time 库

您可以使用 Forecast 控制台或 Forecast SDK 为数据集手动设置一个时区。

Console

为数据集选择单个时区

  1. 登录到 AWS Management Console 并打开 Amazon Forecast 控制台,网址:https://console.aws.amazon.com/forecast/

  2. 在导航窗格中,选择创建数据集组

  3. 数据集导入详细信息中,选定选择时区

例如,使用以下方式将洛杉矶时间(太平洋标准时间)应用于您的数据集。

SDK

为数据集选择单个时区

使用 CreateDatasetImportJob 操作,将 "TimeZone" 设置为有效时区。

例如,使用以下方式将洛杉矶时间(太平洋标准时间)应用于您的数据集。

{ ... "TimeZone": "America/Los_Angeles" }

条件和限制

使用天气指数时适用以下条件和限制:

  • 可用算法:如果您使用传统预测器,则可以在使用 CNN-QR、DeepAR+ 和 Prophet 算法训练预测器时启用天气指数。天气指数不适用于 ARIMA、ETS 和 NPTS。

  • 预测频率:有效的预测频率为 MinutelyHourlyDaily

  • 预测范围:预测范围的跨度不能超过未来的 14 天。有关每个预测频率的预测范围限制,请参阅以下列表:

    • 1 minute - 500

    • 5 minutes - 500

    • 10 minutes - 500

    • 15 minutes - 500

    • Hourly - 330

    • Daily - 14

  • 时间序列长度:在使用天气指数训练模型时,Forecast 会截断所有时间戳早于 Forecast 天气数据集特征化开始日期的时间序列数据集。Forecast 天气数据集特征化包含以下开始日期:

    • 美国地区:2018 年 7 月 2 日

    • 欧洲地区:2018 年 7 月 2 日

    • 亚太地区:2018 年 7 月 2 日

    • 加拿大地区:2019 年 7 月 2 日

    • 南美洲地区:2020 年 1 月 2 日

    • 中美洲地区:2020 年 9 月 2 日

    • 非洲和中东地区:2021 年 3 月 25 日

    启用天气指数后,在预测器训练期间不会使用时间戳早于开始日期的数据点。

  • 位置数量:目标时间序列数据集中的唯一位置不能超过 2000 个。

  • 区域界限:数据集中的所有项目都必须位于单个区域内。

  • 最小时间序列长度:由于测试天气指数时需要附加数据,因此时间序列数据集的最小长度为:

    3 × ForecastHorizon + (BacktestWindows + 1) × BacktestWindowOffset

    如果您的时间序列数据集不符合此要求,则请考虑减少以下内容:

    • ForecastHorizon - 减小预测范围。

    • BacktestWindowOffset - 在回测期间缩短测试集的长度。

    • BacktestWindows - 减少回测数量。