

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

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

# 预测器监控
<a name="predictor-monitoring"></a>

**注意**  
 如果您启用预测器监控，Amazon Forecast 将存储您的每个预测的数据，以分析预测器性能，即使在删除预测数据之后。要删除该数据，请删除监控资源。

 预测器监控允许您查看预测器的性能如何随时间变化。导致性能变化的因素有很多，例如经济发展或客户行为的变化。

 例如，假设一个预测场景，其中目标是 `sales`，并且有两个相关的属性：`price` 和 `color`。在创建第一个预测器后的几个月内，某些颜色可能会出乎意料地更受客户欢迎。这可能会提高具有该属性的商品的销量。这些新数据可能会影响预测器的性能及其生成的预测的准确性。

 启用预测器监控后，Forecast 会在您生成预测和导入更多数据时分析预测器的性能。Forecast 将新数据与之前的预测进行比较，以检测性能的任何变化。您可以在 Forecast 控制台中查看不同准确性指标随时间变化的图表。或者，您可以通过 [ListMonitorEvaluations](API_ListMonitorEvaluations.md) 操作获得监控结果。

 预测器监控可以帮助决定是否需要重新训练预测器。如果性能下降，则可能需要根据最新数据重新训练预测器。如果选择重新训练预测器，则新的预测器将包括前一个预测器的监控数据。您也可以使用预测器监控收集有关生产环境的上下文数据，或者对不同的实验进行比较。

预测变量监控仅适用于。 AutoPredictors您可以将现有的传统预测变量升级到。 AutoPredictor请参阅[升级到 AutoPredictor](howitworks-predictor.md#upgrading-autopredictor)。

**Topics**
+ [预测器监控工作流](#predictor-monitoring-workflow)
+ [启用预测器监控](enabling-predictor-monitoring.md)
+ [查看监控结果](predictor-monitoring-results.md)
+ [限制和最佳实践](#predictor-monitoring-best-practices)

## 预测器监控工作流
<a name="predictor-monitoring-workflow"></a>

要获得预测器监控结果，必须先使用预测器生成预测，然后导入更多数据。监控工作流如下所示：

1. 为自动预测器启用预测器监控：
   + 在启用监控的情况下创建新的预测器。请参阅[启用新预测器的预测器监控](enabling-predictor-monitoring.md#enabling-predictor-monitoring-new)。
   + 或者启用现有预测器的监控。请参阅[启用现有预测器的预测器监控](enabling-predictor-monitoring.md#enabling-predictor-monitoring-existing)。

1. 使用预测器生成一个或多个预测。

1. 导入更多数据。有关将数据导入 Forecast 的信息，请参阅[导入数据集](howitworks-datasets-groups.md)。

1. 查看预测器监控结果：
   + 您可以在**监控**选项卡上查看预测器的结果。
   + 或者，您可以通过 [ListMonitorEvaluations](API_ListMonitorEvaluations.md) 操作获得监控结果。

   有关更多信息，请参阅 [查看监控结果](predictor-monitoring-results.md)。

# 启用预测器监控
<a name="enabling-predictor-monitoring"></a>

您可以在创建预测器时启用预测器监控，也可以启用预测器监控。

**注意**  
预测变量监控仅适用于。 AutoPredictors您可以将现有的传统预测变量升级到。 AutoPredictor请参阅[升级到 AutoPredictor](howitworks-predictor.md#upgrading-autopredictor)。

**Topics**
+ [启用新预测器的预测器监控](#enabling-predictor-monitoring-new)
+ [启用现有预测器的预测器监控](#enabling-predictor-monitoring-existing)

## 启用新预测器的预测器监控
<a name="enabling-predictor-monitoring-new"></a>

您可以使用控制台、、 AWS CLI和操作为新的预测变量启用预测变量监控。 AWS SDKs [CreateAutoPredictor](API_CreateAutoPredictor.md)

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

**要启用预测器监控**

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

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

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

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

1. 在**预测器配置**部分，选择**启用监控**。

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

1. 选择**开始**，在监控启用的情况下创建自动预测器。使用预测器生成预测并导入更多数据后，您将看到监控结果。

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

要使用适用于 Python 的 SDK（Boto3）启用新预测器的预测器监控，请使用 `create_auto_predictor` 方法并在 `MonitoringConfig` 中提供监控器名称。

以下代码创建一个自动预测器，对未来 24（`ForecastHorizon`）天（`ForecastFrequency`）进行预测，并指定 `MyPredictorMonitor` 为 `MonitorName`。生成预测并导入更多数据后，您可以查看预测器监控的结果。有关检索结果的更多信息，请参阅[查看监控结果](predictor-monitoring-results.md)。

 有关创建预测器的所需和可选参数的信息，请参阅[CreateAutoPredictor](API_CreateAutoPredictor.md)。

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

create_predictor_response = forecast.create_auto_predictor(
    PredictorName = 'predictor_name',
    ForecastHorizon = 24,
    ForecastFrequency = 'D',
    DataConfig = {
        "DatasetGroupArn": "arn:aws:forecast:region:account:dataset-group/datasetGroupName"
    },
    MonitorConifg = {
        "MonitorName": "MyMonitorName"
    }
)
```

------

## 启用现有预测器的预测器监控
<a name="enabling-predictor-monitoring-existing"></a>

您可以使用控制台、 AWS CLI和为现有预测变量启用预测变量监控。 AWS SDKs

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

**要启用预测器监控**

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

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

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

1. 选择预测器。

1. 导航到**监控**选项卡。

1. 在**监控详细信息**部分，选择**开始监控** 

   当**监控状态**为“活动”时，将启用预测器监控。生成预测并导入更多数据后，您可以查看预测器监控的结果。有关更多信息，请参阅[查看监控结果](predictor-monitoring-results.md)

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

要使用适用于 Python 的 SDK（Boto3）启用现有预测器的预测器监控，请使用 `create_monitor` 方法。指定监控名称，对于 `ResourceArn`，指定需监控的预测器的 Amazon 资源名称（ARN）。使用 `describe_monitor` 方法并提供监控器 ARN，以获取监控器状态。生成预测并导入更多数据后，您可以查看预测器监控的结果。有关更多信息，请参阅 [查看监控结果](predictor-monitoring-results.md)。

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

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

create_monitor_response = forecast.create_monitor(
    MonitorName = 'monitor_name',
    ResourceArn = 'arn:aws:forecast:region:accountNumber:predictor/predictorName'
)

monitor_arn = create_monitor_response['MonitorArn']

describe_monitor_response = forecast.describe_monitor(
    MonitorArn = monitor_arn
)
print("Monitor status: " + describe_monitor_response['Status'])
```

------

# 查看监控结果
<a name="predictor-monitoring-results"></a>

生成预测并导入更多数据后，您可以查看预测器监控的结果。您可以使用 Forecast 控制台查看结果的可视化，也可以通过 [ListMonitorEvaluations](API_ListMonitorEvaluations.md) 操作以编程方式检索结果。

 Forecast 控制台显示每个[预测器指标](metrics.md)的结果图表。图表包括每个指标在预测器和预测器事件（例如再训练）的生命周期中的变化情况。

 [ListMonitorEvaluations](API_ListMonitorEvaluations.md) 操作返回不同时间段的指标结果和预测器事件。

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

**要查看预测器监控结果**

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

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

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

1. 选择预测器并选择**监控**选项卡。
   +  **监控结果**部分显示不同的准确性指标随着时间的变化。使用下拉列表更改图表跟踪的指标。
   + **监控历史记录**部分列出了在结果中跟踪的不同事件的详细信息。

    以下是预测器的 `Avg wQL` 分数随时间变化的图表示例。在该图表中，请注意 `Avg wQL` 值会随着时间增加。该增加表明预测器的准确性正在降低。使用该信息确定是否需要重新验证模型并采取措施。  
![\[Graph showing increasing Avg wQL score over time, indicating decreasing predictor accuracy.\]](http://docs.aws.amazon.com/zh_cn/forecast/latest/dg/images/predictor-drift.png)

------
#### [ SDK for Python (Boto3) ]

 要使用适用于 Python 的 SDK（Boto3）获取监控结果，请使用 `list_monitor_evaluations` 方法。提供监控器的 Amazon 资源名称（ARN），也可以选择使用 `MaxResults` 参数指定要检索的结果的最大数量。可以选择指定 `Filter` 以筛选结果。可通过 `SUCCESS` 或 `FAILURE` 的 `EvaluationState` 筛选评估。以下代码最多可获得 20 次成功的监控评估。

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

monitor_results = forecast.list_monitor_evaluations(
    MonitorArn = 'monitor_arn',
    MaxResults = 20,
    Filters = [ 
      { 
         "Condition": "IS",
         "Key": "EvaluationState",
         "Value": "SUCCESS"
      }
   ]
)
print(monitor_results)
```

 以下是示例 JSON 响应。

```
{
  "NextToken": "string",
  "PredictorMonitorEvaluations": [
    {
      "MonitorArn": "MonitorARN",
      "ResourceArn": "PredictorARN",
      "EvaluationTime": "2020-01-02T00:00:00Z",
      "EvaluationState": "SUCCESS",
      "WindowStartDatetime": "2019-01-01T00:00:00Z",
      "WindowEndDatetime": "2019-01-03T00:00:00Z",
      "PredictorEvent": {
        "Detail": "Retrain",
        "Datetime": "2020-01-01T00:00:00Z"
      },
      "MonitorDataSource": {
        "DatasetImportJobArn": "arn:aws:forecast:region:accountNumber:dataset-import-job/*",
        "ForecastArn": "arn:aws:forecast:region:accountNumber:forecast/*",
        "PredictorArn": "arn:aws:forecast:region:accountNumber:predictor/*",
      
      },
      "MetricResults": [
        {
          "MetricName": "AverageWeightedQuantileLoss",
          "MetricValue": 0.17009070456599376
        },
        {
          "MetricName": "MAPE",
          "MetricValue": 0.250711322309796
        },
        {
          "MetricName": "MASE",
          "MetricValue": 1.6275608734888485
        },
        {
          "MetricName": "RMSE",
          "MetricValue": 3100.7125081405547
        },
        {
          "MetricName": "WAPE",
          "MetricValue": 0.17101159704738722}
      ]
    }
  ]
}
```

------

## 限制和最佳实践
<a name="predictor-monitoring-best-practices"></a>

使用预测器监控时，请考虑以下限制和最佳实践。
+ **预测器监控仅适用于自动预测器** – 您无法为使用 AutoML 或通过手动选择创建的传统预测器启用监控。请参阅[升级到 AutoPredictor](howitworks-predictor.md#upgrading-autopredictor)。
+ **每个自动预测器的预测器监控都是唯一的** – 每个自动预测器只能创建一个监控器。
+ **预测器监控需要新数据并生成预测** – 当您导入用于生成新预测的新数据时，预测器监控结果就会可用。如果您没有导入新数据，或者新导入的数据没有覆盖整个预测范围，您将看不到监控结果。
+ **预测器监控需要新的预测** – 您必须持续生成新的预测才能生成监控结果。如果没有生成新的预测，就不会看到监控结果。
+  **Amazon Forecast 将存储您的每个预测的数据，以分析预测器性能** – 即使您删除预测，Forecast 也会存储这些数据。要删除这些数据，请删除关联的监控器。
+ [StopResource](API_StopResource.md) 操作将停止所有当前评估和所有未来的评估。
+ 仅当您生成除均值以外的分位数的预测时，avgWQL 指标才可用。
+ [ListMonitorEvaluations](API_ListMonitorEvaluations.md) 操作中未显示正在进行的监控器评估。