不同预测频率的数据聚合 - Amazon Forecast

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

不同预测频率的数据聚合

创建预测变量时,必须指定预测频率。预测频率决定了预测中预测的频率。例如,月度销售预测。Amazon Forecast 预测变量可以为高于您指定的预测频率的数据频率生成预测。例如,即使每天记录数据,您也可以生成每周预测。在训练期间,Forecast 会汇总每日数据,以每周的预测频率生成预测。

时间边界

时间界限指定时间单位的开始,例如一周的哪一天开始。在汇总数据之前,Amazon Forecast 会根据预测频率的时间单位对数据进行调整。它是根据数据与时间界限的关系来执行此操作的。

例如,如果您指定了每日预测频率但未指定自己的时间界限,则 Forecast 会根据每小时记录所属的日期对其进行对齐。每天从 0 小时开始。一天何时开始 0 小时的定义是时间界限。然后,Forecast 将每小时记录汇总为当天的单条记录。

Forecast 使用基于预测频率的时间单位的默认时间边界。如果创建auto 预测器,则可以指定自定义时间边界。

如果您同时指定自定义时间界限和自定义预测频率,Forecast 将在预测频率内聚合您的数据,并将其与自定义时间界限对齐。预测频率决定数据的聚合频率,而自定义时间边界决定对齐的位置。例如,假设您的数据是每天收集的,并且您希望 Amazon Forecast 在当月 15 日生成一年的季度预测。为此,请将预测频率设置为每 3 个月一次,将自定义时间界限设置为 15。请参阅以下 AWS Command Line Interface 示例。

aws forecast create-auto-predictor \ --predictor-name predictor_name \ --data-config DatasetGroupArn="arn:aws:forecast:region:account:dataset-group/datasetGroupName" \ --forecast-horizon 4 \ --forecast-frequency 3M \ --time-alignment-boundary DayOfMonth=15

在此示例中,将所有每日数据汇总(默认聚合)至每三个月的第 15 个月。

请注意,这种聚合不需要每日数据,只需要每月或更频繁地收集数据即可。

默认时间边界

下表列出了 Forecast 在聚合数据时使用的默认时间排列边界。

频率 边界
分钟 上个整分(45:00、06:00)
小时 上个整点(09:00:00、13:00:00)
一天中的第一个小时(第 0 小时)
最近的星期一
月份 一月中的第一天
年份 一年中的第一天(1 月 1 日)

指定时间边界

注意

您只能为auto 预测器指定时间边界。

当您创建具有每日、每周、每月或每年的预测频率的auto 预测变量时,可以指定 Forecast 用于聚合数据的时间界限。如果您的企业日历与默认时间界限不一致,则可以指定时间界限。例如,您可能想要生成每月预测,其中每个月从当月的第三天开始。如果您未指定时间边界,Forecast 会使用一组 Forecast默认时间边界.

您指定的时间界限单位必须比预测频率精一个单位。下表列出了您可以指定的时间界限单位和值,按预测频率组织。

您只能指定Monthly时间边界,边界值为28或更少。

Forecast 频率 边界单位 边界值
每天 小时 0–23
每周 星期几 星期一至星期日
每月 日期 1 到 28
每年 月份 一月至十二月

在创建预测变量时可以指定时间对齐边界,如下所示。有关可以通过编程方式指定的不同时间界限单位和边界值的信息,请参见TimeAlignmentBoundary.

Console

为预测变量指定时间对齐边界

  1. 登录AWS Management Console然后打开 Amazon Forecast 控制台https://console.aws.amazon.com/forecast/.

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

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

  4. 选择训练新的预测变量.

  5. 为必填项提供值名称,Forecast 频率,以及Forecast 界字段之间没有不同。

  6. 对于时间调整边界,指定预测变量在聚合数据时将使用的时间边界。此列表中的值取决于Forecast 频率您选择。

  7. 选择开始。Forecast 将在创建预测变量时使用您指定的时间对齐边界聚合数据。

AWS CLI

使用以下命令为预测变量指定时间对齐边界AWS CLI,使用create-auto-predictor命令。对于time-alignment-boundary参数,提供时间单位和边界值。以下代码创建了一个auto 预测器,用于预测future 5 周内,每周从星期二开始。

DayOfWeekDayOfMonth值必须全部为大写。有关您可以指定的不同时间边界单位和边界值的信息,请参见TimeAlignmentBoundary. 有关必需参数和可选参数的信息,请参阅CreateAutoPredictor.

aws forecast create-auto-predictor \ --predictor-name predictor_name \ --data-config DatasetGroupArn="arn:aws:forecast:region:account:dataset-group/datasetGroupName" \ --forecast-horizon 5 \ --forecast-frequency W \ --time-alignment-boundary DayOfWeek=TUESDAY
Python

要使用适用于 Bothon (Boto3) 指定预测变量的时间Alignmency (Boto3),请使用create_auto_predictor方法。对于TimeAlignmentBoundary参数,提供以时间单位为键值和边界值为值的字典。以下代码创建了一个auto 预测器,用于预测future 5 周内,每周从星期二开始。

DayOfWeekDayOfMonth值必须全部为大写。有关您可以指定的不同时间边界单位和边界值的信息,请参见TimeAlignmentBoundary. 有关必需参数和可选参数的信息,请参阅CreateAutoPredictor.

import boto3 forecast = boto3.client('forecast') create_predictor_response = forecast.create_auto_predictor( PredictorName = 'predictor_name', ForecastHorizon = 5, ForecastFrequency = 'W', DataConfig = { "DatasetGroupArn": "arn:aws:forecast:region:account:dataset-group/datasetGroupName" }, TimeAlignmentBoundary = { "DayOfWeek": "TUESDAY" } ) print(create_predictor_response['PredictorArn'])