View a markdown version of this page

天气指数 - Amazon Forecast

Amazon Forecast 不再向新买家开放。Amazon Forecast 的现有客户可以继续照常使用该服务。了解更多

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

天气指数

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

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

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

Python 笔记本

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

启用天气指数

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

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

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

Console

启用天气指数

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

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

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

  4. 选择训练新预测器

  5. 选择启用天气指数

SDK

启用天气指数

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

"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)。

地图显示的 Asia-Pacific 地区包括从印度到新西兰和澳大利亚的国家。
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 管理控制台 并打开 Amazon Forecast 控制台,网址为https://console.aws.amazon.com/forecast/

  2. 选择创建数据集组

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

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

架构生成器界面显示四个属性:item_id、时间戳、target_value 和位置及其各自的类型。

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

SDK

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

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

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

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

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

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

指定时区

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

自动同步时区与地理位置

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

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

Console

同步时区与地理位置属性

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

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

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

数据集导入详细信息表单,其中包含名称、时区、数据位置和 IAM 角色字段。
SDK

同步时区与地理位置属性

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

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

手动选择单个时区

注意

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

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

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

美国地区

  • America/Los_Angeles

  • America/Phoenix

  • America/Denver

  • America/Chicago

  • America/New_York

加拿大地区

  • America/Vancouver

  • America/Edmonton

  • America/Regina

  • America/Winnipeg

  • America/Toronto

  • America/Halifax

  • America/St_约翰斯

欧洲地区

  • Europe/London

  • Europe/Paris

  • Europe/Helsinki

南美洲地区

  • America/Buenos_Aires

  • America/Noronha

  • America/Caracas

亚太地区

  • Asia/Kabul

  • Asia/Karachi

  • Asia/Kolkata

  • Asia/Kathmandu

  • Asia/Dhaka

  • Asia/Rangoon

  • Asia/Bangkok

  • Asia/Singapore

  • Asia/Seoul

  • Australia/Adelaide

  • Australia/Melbourne

  • Australia/Lord_Howe

  • Australia/Eucla

  • Pacific/Norfolk

  • Pacific/Auckland

中美洲

  • America/Puerto_Rico

非洲和中东

  • Africa/Nairobi

  • Asia/Tehran

  • Asia/Dubai

其他

  • Pacific/Midway

  • Pacific/Honolulu

  • Pacific/Marquesas

  • America/Anchorage

  • Atlantic/Cape_Verde

  • Asia/Anadyr

  • Pacific/Chatham

  • Pacific/Enderbury

  • Pacific/Kiritimati

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

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

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

Console

为数据集选择单个时区

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

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

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

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

数据集导入详细信息表单,选择 America/Los _Angeles 作为时区。
SDK

为数据集选择单个时区

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

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

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

条件和限制

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

  • 可用算法:如果使用传统预测变量,则在使用、Deepar+ 和 Prophet 算法训练预测变量时 CNN-QR,可以启用天气指数。天气指数不适用于 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 - 减少回测数量。