

 Amazon Forecast 不再提供給新客戶。Amazon Forecast 的現有客戶可以繼續正常使用服務。[進一步了解」](https://aws.amazon.com/blogs/machine-learning/transition-your-amazon-forecast-usage-to-amazon-sagemaker-canvas/)

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 不同預測頻率的資料彙總
<a name="data-aggregation"></a>

 建立預測器時，您必須指定預測頻率。預測頻率決定預測中預測的頻率。例如，每月銷售預測。Amazon Forecast predictor 可以產生高於您指定預測頻率的資料頻率預測。例如，即使每天記錄資料，您也可以產生每週預測。在訓練期間，預測會彙總每日資料，以每週預測頻率產生預測。

**Topics**
+ [彙總的運作方式](how-aggregation-works.md)
+ [時間邊界](#time-boundaries)
+ [資料彙總假設](aggregation-guidelines.md)

## 時間邊界
<a name="time-boundaries"></a>

時間界限會指定時間單位的開始，例如一週的開始日。在彙總您的資料之前，Amazon Forecast 會根據預測頻率的時間單位來調整資料。它會根據資料與時間界限的關係來執行此操作。

 例如，如果您指定每日預測頻率，但不是自己的時間界限，預測會根據記錄所屬的日期來調整每小時記錄。每天從 0 小時開始。一天開始時的定義，0 小時是時間界限。然後，預測會將每小時記錄彙總到當天的單一記錄。

預測會根據預測頻率的時間單位，使用預設的時間界限。如果您建立自動預測器，您可以指定自訂時間界限。

如果您同時指定自訂時間界限和自訂預測頻率，預測會在預測頻率內彙總您的資料，並將其與自訂時間界限對齊。預測頻率決定資料彙總的頻率，而自訂時間界限則決定對齊的位置。例如，假設您的資料是每天收集的，而且您希望 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 日。

請注意，此彙總不需要每日資料，只是每月或更頻繁地收集資料。

**Topics**
+ [預設時間界限](#default-time-boundaries)
+ [指定時間界限](#specifying-time-boundary)

### 預設時間界限
<a name="default-time-boundaries"></a>

下表列出預測在彙總資料時使用的預設時間對齊界限。


| 頻率 | 邊界 | 
| --- | --- | 
| 分鐘 | 一分鐘的最後一個整點 (45:00、06:00) | 
| 小時 | 一小時的最後一個整點 (09:00:00、13:00:00) | 
| 天 | 一天中的第一個小時 （第 0 小時） | 
| 週 | 最近的星期一 | 
| 月 | 一個月的第一天 | 
| 年 | 一年的第一天 (1 月 1 日) | 

### 指定時間界限
<a name="specifying-time-boundary"></a>

**注意**  
您只能指定自動預測器的時間界限。

 當您建立具有每日、每週、每月或每年預測頻率的自動預測器時，您可以指定預測用於彙總資料的時間界限。如果您的商業行事曆不符合預設的時間範圍，您可以指定時間界限。例如，您可能想要產生每月預測，其中每月從每月的第三天開始。如果您未指定時間界限，預測會使用一組 [預設時間界限](#default-time-boundaries)。

 您指定的時間界限單位必須是比預測頻率更精細的單位。下表列出您可以指定的時間界限單位和值，依預測頻率組織。

您只能指定邊界值為 `28`或更少`Monthly`的時間邊界。


| 預測頻率單位 | 邊界單位 | 邊界值 | 
| --- | --- | --- | 
| 每日 | 小時 | 0–23 | 
| 每週 | 週中的日 | 週一至週日 | 
| 每月 | 月中的日 | 1 到 28 | 
| 每年 | 月 | 1 月至 12 月 | 

建立預測器時，您可以指定時間對齊界限，如下所示。如需不同時間界限單位和界限值的資訊，您可以程式設計方式指定，請參閱 [TimeAlignmentBoundary](API_TimeAlignmentBoundary.md)。

------
#### [ Console ]

****

**指定預測器的時間對齊界限**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) 開啟 Amazon Forecast 主控台。

1. 從**資料集群組**中，選擇您的資料集群組。

1. 在導覽窗格中，選擇**預測器**。

1. 選擇**訓練新的預測器**。

1. 提供必要**名稱**、**預測頻率**和**預測時間範圍**欄位的值。

1.  針對**時間對齊界限**，指定預測器在彙總資料時將使用的時間界限。此清單中的值取決於您選擇的**預測頻率**。

1. 選擇 **開始使用**。預測會使用您在建立預測器時指定的時間對齊界限來彙總資料。

------
#### [ AWS CLI ]

若要使用 指定預測器的時間對齊界限 AWS CLI，請使用 `create-predictor`命令。針對 `time-alignment-boundary` 參數，提供時間和界限值的單位。下列程式碼會建立 自動預測器，未來預測 5 週，每週會在星期二開始。

`DayOfWeek` 和 `DayOfMonth`值必須全部大寫。如需有關您可以指定之不同時間界限單位和界限值的資訊，請參閱 [TimeAlignmentBoundary](API_TimeAlignmentBoundary.md)。如需必要和選用參數的詳細資訊，請參閱[CreateAutoPredictor](API_CreateAutoPredictor.md)。

```
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 的 SDK (Boto3) 指定預測器的時間對齊界限，請使用 `create_auto_predictor`方法。針對 `TimeAlignmentBoundary` 參數，提供以時間單位做為索引鍵的字典，並以邊界值做為值。下列程式碼會建立 自動預測器，未來預測 5 週，每週會在星期二開始。

`DayOfWeek` 和 `DayOfMonth`值必須全部大寫。如需有關您可以指定之不同時間界限單位和界限值的資訊，請參閱 [TimeAlignmentBoundary](API_TimeAlignmentBoundary.md)。如需必要和選用參數的詳細資訊，請參閱[CreateAutoPredictor](API_CreateAutoPredictor.md)。

```
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'])
```

------