

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

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

# 预测器可解释性
<a name="predictor-explainability"></a>

预测器可解释性可帮助您更好地了解数据集中的属性对目标变量的影响。Forecast 使用名为影响力分数的指标来量化每个属性的相对影响，并确定它们是增加还是减少预测值。

例如，假设一个预测场景，其中目标是 `sales`，并且有两个相关的属性：`price` 和 `color`。Forecast 可能会发现，商品的价格会显著影响销量（影响力分数高），而商品颜色的影响可以忽略不计（影响力分数低）。

要启用预测可解释性，您的预测器必须至少包含以下其中一项：相关时间序列、项目元数据或其他数据集，例如节假日和天气指数。请参阅[限制和最佳实践](#predictor-explainability-best-practices)了解更多信息。

要创建特定时间序列和时间点的影响力分数，请使用预测可解释性而不是预测器可解释性。请参阅[预测可解释性](forecast-explainability.md)。

**Topics**
+ [解释影响力分数](#predictor-explainability-impact-scores)
+ [创建预测器可解释性](#creating-predictor-explainability)
+ [导出预测器可解释性](#exporting-predictor-explainability)
+ [限制和最佳实践](#predictor-explainability-best-practices)

## 解释影响力分数
<a name="predictor-explainability-impact-scores"></a>

影响力分数衡量属性对预测值的相对影响。例如，如果“价格”属性的影响力分数是“商店位置”属性的两倍，则可以得出结论，某件商品的价格对预测值的影响是商店位置的两倍。

 影响力分数还提供有关属性会增加还是减少预测值的信息。在控制台中，这由两个图表表示。带有蓝条的属性会增加预测值，而带有红条的属性会降低预测值。

![](http://docs.aws.amazon.com/zh_cn/forecast/latest/dg/images/quicksight-unfiltered.png)


在控制台中，影响力分数介于 0 到 1 之间，其中 0 分表示没有影响，接近 1 的分数表示影响显著。在中 SDKs，冲击分数范围为-1到1，其中符号表示撞击的方向。

值得注意的是，影响力分数衡量的是属性的相对影响，而不是绝对影响。因此，不能使用影响力分数来确定特定属性是否提高了模型准确性。如果某个属性的影响力分数较低，这并不一定意味着它对预测值的影响较小；而是意味着它对预测值的影响要小于预测器使用的其他属性。

## 创建预测器可解释性
<a name="creating-predictor-explainability"></a>

**注意**  
对于每个预测器最多可以创建一个预测器可解释性

当您启用预测器可解释性时，Amazon Forecast 会计算数据集中所有属性的影响力分数。影响力分数可以解释为影响属性对总体预测值的影响。可以在创建预测器时启用预测器可解释性，也可以在创建预测器后启用该功能。

### 为新的预测器启用预测器可解释性
<a name="creating-predictor-explainability-new"></a>

在创建新的预测器时启用预测器可解释性，将同时创建预测器资源和可解释性资源。您可以使用软件开发工具包（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. 提供以下必填字段的值：
   + **名称** - 唯一的预测器名称。
   + **预测频率** - 预测的粒度。
   + **预测范围** - 预测的时间步数。

1. 选择**开始**

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

要使用适用于 Python 的 SDK (Boto3) 为新的预测变量启用可解释性，请使用方法并将其设置为 true。`create_auto_predictor` ExplainPredictor 

以下代码创建一个自动预测器，对未来 24（`ForecastHorizon`）天（`ForecastFrequency`）进行预测，并已将 `ExplainPredictor` 设置为 true。有关所需和可选参数的更多信息，请参阅[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}}"
    },
    ExplainPredictor = True
)
```

------

### 为现有预测器启用预测器可解释性
<a name="creating-predictor-explainability-old"></a>

为现有预测器启用预测器可解释性，将为该资源创建可解释性资源。您只能为尚未包含可解释性资源的预测器创建可解释性资源。要查看已更新数据集的影响力分数，请使用更新的数据重新训练或重新创建预测器。

您可以使用软件开发工具包（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. 为预测器可解释性提供唯一名称。

1. 选择**开始**

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

要使用适用于 Python 的 SDK（Boto3）启用现有预测器的预测器可解释性，请使用 `create_explainability` 方法。指定可解释性的名称和预测器的 ARN，对于 `ExplainabilityConfig`，将 `TimePointGranularity` 和 `TimeSeriesGranularity` 均设置为 **ALL**。要创建可在控制台中查看的可解释性可视化，请将 `EnableVisualization` 设置为 **True**。

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

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

create_explainability_response = forecast.create_explainability(
    ExplainabilityName = '{{explainability_name}}',
    ResourceArn = 'arn:aws:forecast:{{region}}:{{accountNumber}}:predictor/{{predictorName}}',
    ExplainabilityConfig = { 
      "TimePointGranularity": "ALL",
      "TimeSeriesGranularity": "ALL"
    },
    EnableVisualization = True
)
```

------

## 导出预测器可解释性
<a name="exporting-predictor-explainability"></a>

**注意**  
导出的文件可以直接从数据集导入中返回信息。如果导入的数据包含公式或命令，则文件易受 CSV 注入影响。因此，导出的文件可能会提示安全警告。为避免恶意活动，请在读取导出的文件时禁用链接和宏。

Forecast 允许您将影响力分数的 CSV 或 Parquet 文件导出到 S3 位置。影响力分数介于 -1 到 1 之间，其中符号表示影响方向。您可以使用 Amazon Forecast 软件开发工具包（SDK）和 Amazon Forecast 控制台导出影响力分数。

![](http://docs.aws.amazon.com/zh_cn/forecast/latest/dg/images/explainability-global.png)


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

**要导出预测器可解释性**

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

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

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

1. 选择预测器。

1. 在预测器可解释性****部分，选择**导出**。

1. 对于**导出名称**字段，提供导出的唯一名称。

1. 对于**S3 可解释性导出位置**字段，提供导出 CSV 文件的 S3 位置。

1. 对于**IAM 角色**字段，为角色提供访问指定 S3 位置的权限。

1. 选择**创建导出**。

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

要使用适用于 Python 的 SDK（Boto3）导出预测器可解释性，请使用 `create_explainability_export` 方法。为作业命名，指定可解释性的 ARN，然后在 `Destination` 对象中指定您的 Amazon S3 目标位置和 IAM 服务角色。

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

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

export_response = forecast.create_explainability_export(
    Destination = {
        "S3Config": {
            "Path": "s3://{{bucketName}}/{{filename}}.csv",
            "RoleArn": "arn:aws:iam::{{accountNumber}}:role/{{roleName}}"
        }
    },
    ExplainabilityArn = 'arn:aws:forecast:{{region}}:{{accountNumber}}:explainability/{{explainabilityName}}',
    ExplainabilityExportName = '{{job_name}}'
)
```

------

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

使用预测器可解释性时，请考虑以下限制和最佳实践。
+ **预测变量可解释性仅适用于使用创建的某些预测变量 AutoPredictor**-您无法为使用 AutoML 或通过手动选择创建的传统预测变量启用可解释性。请参阅[升级到 AutoPredictor](howitworks-predictor.md#upgrading-autopredictor)。
+ **预测变量可解释性并非适用于所有模型**-ARIMA（AutoRegressive 综合移动平均线）、ETS（指数平滑状态空间模型）和 NPTS（非参数时间序列）模型不包含外部时间序列数据。因此，即使您包含了其他数据集，这些模型也不会创建可解释性报告。
+ **可解释性需要属性** - 您的预测器必须至少包含以下其中一项：相关时间序列、项目元数据、节假日或天气指数。
+ **预测器仅限于一个可解释性资源** - 您不能为一个预测器创建多个可解释性资源。如果您对更新数据集的影响力分数感兴趣，请重新训练您的预测器。
+ **影响力分数为零表示没有影响** - 如果某一属性的影响力分数为 0，则该属性对预测值没有显著影响。
+ **重试失败的 Predictor Explainability 作业-** 如果 Forecast 成功创建了预测变量，但预测变量可解释性作业失败，则可以在控制台或操作中重试创建 Predictor Explainability。 CreateExplainability 
+ **您无法为特定时间点和时间序列创建影响力分数** - 要查看特定时间点和时间序列的影响力分数，请参阅[预测可解释性](forecast-explainability.md)。
+ **预测器可解释性可视化在创建后的 90 天内可用** - 要在 90 天后查看可视化，请重新训练预测器。