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

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

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

不同预测频率的数据聚合

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

时间边界

时间边界指定时间单位的开始时间,例如一周的开始日期。在聚合数据之前,Amazon Forecast 会根据您的预测频率的时间单位对齐数据。Amazon Forecast 根据数据与时间边界的关系来执行此操作。

例如,如果您指定每日预测频率但未指定自己的时间边界,则 Forecast 会根据每小时记录所属的日期对齐每小时记录。每天从 0 点开始。一天的开始时间指的是 0 点,这就是时间边界。然后,Forecast 会将每小时记录聚合为当天的单个记录。

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

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

aws forecast create-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 日)

指定时间边界

注意

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

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

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

只能指定边界值等于或小于 28Monthly 时间边界。

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

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

Console

为预测器指定时间对齐边界
  1. 登录到 AWS Management Console 并打开 Amazon Forecast 控制台,网址:https://console.aws.amazon.com/forecast/

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

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

  4. 选择训练新预测器

  5. 为必填的 名称预测频率预测范围字段提供值。

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

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

AWS CLI

要使用 AWS CLI 为预测器指定时间对齐边界,请使用 create-predictor 命令。针对 time-alignment-boundary 参数,提供时间单位和边界值。以下代码创建了一个自动预测器,用于预测未来 5 周,其中每周从星期二开始。

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

aws forecast create-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

要使用适用于 Python (Boto3) 的 SDK 为预测器指定时间对齐边界,请使用 create_auto_predictor 方法。针对 TimeAlignmentBoundary 参数,请提供一个以时间单位为键、边界值为值的字典。以下代码创建了一个自动预测器,用于预测未来 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'])