

 Amazon Forecast 不再向新买家开放。Amazon Forecast 的现有客户可以继续照常使用该服务。[了解更多](https://aws.amazon.com/blogs/machine-learning/transition-your-amazon-forecast-usage-to-amazon-sagemaker-canvas/)

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

# 训练预测器
<a name="howitworks-predictor"></a>

预测器是一种 Amazon Forecast 模型，该模型使用您的目标时间序列、相关时间序列、项目元数据以及您包含的任何其他数据集进行训练。您可以使用预测器根据您的时间序列数据生成预测。

默认情况下，Amazon Forecast 会创建 AutoPredictor，其中 Forecast 会将算法的最佳组合应用于数据集中的每个时间序列。

**Topics**
+ [创建预测器](#creating-predictors)
+ [正在升级到 AutoPredictor](#upgrading-autopredictor)
+ [不同预测频率的数据聚合](data-aggregation.md)
+ [使用其他数据集](#using-additional-datasets)
+ [使用传统预测器](#legacy-predictors)
+ [评估预测器准确率](metrics.md)
+ [重新训练预测器](retrain-predictors.md)
+ [天气指数](weather.md)
+ [节假日特征化](holidays.md)
+ [预测器可解释性](predictor-explainability.md)
+ [预测器监控](predictor-monitoring.md)
+ [Amazon Forecast 算法](aws-forecast-choosing-recipes.md)

## 创建预测器
<a name="creating-predictors"></a>

Amazon Forecast 需要以下输入来训练预测器：
+ **数据集组** – 必须包含目标时间序列数据集的数据集组。目标时间序列数据集包括目标属性（`item_id`）和时间戳属性以及任何维度。相关的时间序列和项目元数据为可选项。有关更多信息，请参阅 [导入数据集](howitworks-datasets-groups.md)。
+ **预测频率** – 预测的粒度（每小时、每天、每周等）。当您提供频率单位和数值时，Amazon Forecast 可让您确定预测的确切粒度。只允许使用整数值    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/forecast/latest/dg/howitworks-predictor.html)

  例如，如果您希望每隔一周进行一次预测，频率单位为每周，值为 2。或者，如果您希望每季度预测一次，频率单位为每月，值为 3。

  当您收集数据的频率高于预测频率时，则会将其汇总到预测频率。这包括跟踪时间序列和相关时间序列数据。有关聚合的更多信息，请参阅 [不同预测频率的数据聚合](data-aggregation.md)。
+ **预测范围** – 预测的时间步数。

您还可以为以下可选输入设置数值：
+  **时间对齐边界** – Forecast 用于聚合您的数据并生成与您指定的预测频率一致的预测的时间边界。有关聚合的更多信息，请参阅[不同预测频率的数据聚合](data-aggregation.md)。有关指定时间边界的信息，请参阅[时间边界](data-aggregation.md#time-boundaries)。
+ **预测维度** – 维度是目标时间序列数据集中的可选属性，可与目标值 (`item_id`) 结合使用以创建单独的时间序列。
+ **预测类型** – 用于评估预测器的分位数。
+ **优化指标** – 用于优化预测器的准确性指标。
+ **其他数据集** – 内置 Amazon Forecast 数据集，例如天气指数和节假日。

您可以使用软件开发工具包（SDK）或 Amazon Forecast 控制台创建预测器。

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

**要创建预测器**

1. 登录 AWS 管理控制台 并打开 Amazon Forecast 控制台，网址为[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/)。

1. 从**数据集组**中，选择您的数据集组。

1. 在导航窗格中，选择**预测器**。

1. 选择**训练新预测器**。

1. 提供以下必填字段的值：
   +  **名称** - 唯一的预测器名称。
   + **预测频率** - 预测的粒度。
   + **预测范围** - 预测的时间步数。

1. 选择**启动**。

有关其他数据集的信息，请参阅[天气指数](weather.md)和[节假日特征化](holidays.md)。要了解有关自定义预测类型和优化指标的更多信息，请参阅[评估预测器准确率](metrics.md)。

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

要使用创建 auto 预测器 AWS CLI，请使用`create-predictor`命令。以下代码创建一个自动预测器，对未来 14 天进行预测。

提供预测器名称和包含训练数据的数据集组的 Amazon 资源名称（ARN）。可选择修改预测范围和预测频率。可选择为预测器添加任何标签。有关更多信息，请参阅[为 Amazon Forecast 资源贴标签](tagging-forecast-resources.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 14 \
--forecast-frequency D \
--tags Key={{key1}},Value={{value1}} Key={{key2}},Value={{value2}}
```

要了解有关自定义预测类型和优化指标的更多信息，请参阅[评估预测器准确率](metrics.md)天气指数和节假日。其他数据集在 `DataConfig` 数据类型中定义。有关其他数据集的信息，请参阅[天气指数](weather.md)和[节假日特征化](holidays.md)。

------
#### [ Python ]

要使用适用于 Python 的 SDK（Boto3）创建自动预测器，请使用 `create_auto_predictor` 方法。以下代码创建一个自动预测器，对未来 14 天进行预测。

提供预测器名称和包含训练数据的数据集组的 Amazon 资源名称（ARN）。可选择修改预测范围和预测频率。可选择为预测器添加任何标签。有关更多信息，请参阅[为 Amazon Forecast 资源贴标签](tagging-forecast-resources.md)。

有关所需和可选参数的更多信息，请参阅[CreateAutoPredictor](API_CreateAutoPredictor.md)。

```
import boto3
            
forecast = boto3.client('forecast')

create_predictor_response = forecast.create_auto_predictor(
    PredictorName = '{{predictor_name}}',
    ForecastHorizon = 14,
    ForecastFrequency = 'D',
    DataConfig = {
      "DatasetGroupArn": "arn:aws:forecast:{{region}}:{{account}}:dataset-group/{{datasetGroupName}}"
    },
    Tags = [ 
      { 
         "Key": "{{key1}}",
         "Value": "{{value1}}"
      },
      { 
         "Key": "{{key2}}",
         "Value": "{{value2}}"
      }
    ]
)
print(create_predictor_response['PredictorArn'])
```

要了解有关自定义预测类型和优化指标的更多信息，请参阅[评估预测器准确率](metrics.md)天气指数和节假日。其他数据集在 `DataConfig` 数据类型中定义。有关其他数据集的信息，请参阅[天气指数](weather.md)和[节假日特征化](holidays.md)。

------

## 正在升级到 AutoPredictor
<a name="upgrading-autopredictor"></a>

**Python 笔记本**  
有关将预测变量升级到的 step-by-step指南 AutoPredictor，请参阅将[预测变量升级为](https://github.com/aws-samples/amazon-forecast-samples/blob/main/notebooks/basic/Upgrading_to_AutoPredictor/UpgradeToAutoPredictor.ipynb)。 AutoPredictor

使用 AutoML 或手动选择 CreatePredictor () 创建的预测变量可以升级为。 AutoPredictor将现有变量升级到 AutoPredictor 将转移所有相关的预测变量配置设置。

升级到后 AutoPredictor，原始预测变量将保持活动状态，升级后的预测变量将具有单独的预测变量 ARN。这使您可以比较两个预测器之间的准确性指标，并且仍然可以使用原始预测器生成预测。

您可以使用软件开发工具包（SDK）或 Amazon Forecast 控制台升级预测器。

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

**要升级预测器**

1. 登录 AWS 管理控制台 并打开 Amazon Forecast 控制台，网址为[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/)。

1. 在导航窗格中，选择**预测器**。

1. 选择要升级的预测器，然后选择**升级**。

1. 为升级后的预测器设置唯一名称。

1. 选择 “**升级到” AutoPredictor**。

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

要使用升级预测变量 AWS CLI，请使用`create-predictor`方法，但*仅*指定预测变量的名称和值`reference-predictor-arn`（要升级的预测变量的 ARN）。

```
aws forecast create-predictor \
--predictor-name {{predictor_name}} \
--reference-predictor-arn arn:aws:forecast:{{region}}:{{account}}:predictor/{{predictorName}}
```

------
#### [ Python ]

要使用适用于 Python 的 SDK（Boto3）升级预测器，请使用 `create_auto_predictor` 方法，但*仅*指定预测器的名称和 `ReferencePredictorArn` 值（要升级的预测器的 ARN）。

```
import boto3
            
forecast = boto3.client('forecast')

create_predictor_response = forecast.create_auto_predictor(
    PredictorName = '{{predictor_name}}',
    ReferencePredictorArn = 'arn:aws:forecast:{{region}}:{{account}}:predictor/{{predictorName}}'
)
print(create_predictor_response['PredictorArn'])
```

------

## 使用其他数据集
<a name="using-additional-datasets"></a>

创建预测器时，Amazon Forecast 可以包括天气指数和节假日。天气指数将气象信息纳入您的模型中，而节假日则包含有关国家/地区法定节假日的信息。

天气指数需要在目标时间序列数据集中具有“地理定位”属性，并要求在时间戳中提供有关时区的信息。有关更多信息，请参阅 [天气指数](weather.md)。

节假日包括超过 250 个国家/地区的节假日信息。有关更多信息，请参阅 [节假日特征化](holidays.md)。

## 使用传统预测器
<a name="legacy-predictors"></a>

**注意**  
要将现有预测变量升级到 AutoPredictor，请参见 [正在升级到 AutoPredictor](#upgrading-autopredictor)

AutoPredictor 是使用 Amazon Forecast 创建预测变量的默认首选方法。 AutoPredictor 通过为数据集中的每个时间序列应用算法的最佳组合来创建预测变量。

使用创建的预测变量 AutoPredictor 通常比使用 AutoML 或手动选择创建的预测变量更准确。Forecast 可解释性和预测变量再训练功能仅适用于使用创建的预测变量。 AutoPredictor

Amazon Forecast 也可以通过以下方式创建传统预测器：

1. **AutoML** - Forecast 会查找性能最好的算法并将其应用于您的整个数据集。

1. **手动选择** - 手动选择适用于您的整个数据集的单一算法。

您可以使用软件开发工具包（SDK）创建传统预测器。

------
#### [ SDK ]

**要使用 AutoML**

使用 [`CreatePredictor`](API_CreatePredictor.md) 操作，将 `PerformAutoML` 的值设置为 `"true"`。

```
{
    ...
    "PerformAutoML": "true",
}
```

如果您使用 autoML，则无法为以下 CreatePredictor参数设置值：`AlgorithmArn`、、`HPOConfig`。`TrainingParameters`

------