

截至 2025 年 11 月 7 日，亚马逊 Fraud Detector 不再向新客户开放。要获得与 Amazon Fraud Detector 类似的功能 SageMaker，请浏览亚马逊 AutoGluon、和 AWS WAF。

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

# 预测解释
<a name="prediction-explanation"></a>

预测解释可以深入了解每个事件变量如何影响模型的欺诈预测分数，并作为欺诈预测的一部分自动生成。每项欺诈预测的风险评分都介于 1 到 1000 之间。预测解释详细介绍了每个事件变量对风险评分的影响，包括幅度（0-5，5 表示最高）和方向（驾驶分数提高或降低）。您也可以对以下任务使用预测解释：
+ 在将事件标记为待审核时，在手动调查期间确定最重要的风险指标。
+ 缩小导致误报预测的根本原因（例如，合法事件的高风险评分）。
+ 分析事件数据的欺诈模式并检测数据集中的偏差（如果有）。

**重要**  
预测解释是自动生成的，仅适用于在 *2021 年 6 月 30 日*当天或之后训练的模型。要获得在 *2021 年 6 月 30 日*之前训练的模型的预测说明，请重新训练这些模型。

预测解释为用于训练模型的每个事件变量提供以下一组值。

 **相对影响**

提供变量对欺诈预测分数的影响的可视参考。相对影响值包括欺诈风险的星级（0-5，5 表示最高）和方向（增加/减少）影响。
+ 增加欺诈风险的变量用红色星星表示。红色星星的数量越多，变量越能提高欺诈分数并增加欺诈的可能性。
+ 降低欺诈风险的变量由绿色星星表示。绿色开局次数越多，变量就越能降低欺诈风险评分，欺诈的可能性就会降低。
+ 所有变量的零星表示这些变量本身都没有显著改变欺诈风险。

**原始解释值**

提供未解释的原始值，表示为欺诈的对数赔率。这些值通常介于 -10 到 \+10 之间，但范围从-无穷大到 \+ 无穷大。
+ 正值表示该变量推动了风险评分的提高。
+ 负值表示该变量降低了风险评分。

在 Amazon Fraud Detector 控制台中，预测解释值显示如下。彩色星评级和相应的原始数值可以很容易地看到变量之间的相对影响。

![预测解释图：增加风险的变量和降低欺诈风险的变量，以及每个变量的相对影响和原始解释值。](http://docs.aws.amazon.com/zh_cn/frauddetector/latest/ug/images/PredictionExplanationPane.png)


## 查看预测解释
<a name="view-prediction-explanations"></a>

生成欺诈预测后，您可以在 Amazon Fraud Detector 控制台中查看预测说明。要使用 APIs AWS SDK 查看预测解释，必须先调用 `ListEventPrediction` API 以获取事件的预测时间戳，然后调用 `GetEventPredictionMetadata` API 以获取预测解释。

### 使用 Amazon Fraud Detector 控制台查看预测解释
<a name="view-prediction-explanations-console"></a>

**要使用控制台查看预测说明，**

1. 打开 AWS 控制台并登录您的账户。导航至 Amazon Fraud Detector。

1. 在左侧导航窗格中，选择 “**搜索过去的预测**”。

1. 使用 “**属性**”、“**运算符**” 和 “**值**” 筛选器来选择要查看的预测。

1. 在顶部的**筛选器**窗格中，确保选择生成要查看的预测的时间段。

1. **结果**窗格显示在指定时间段内生成的所有预测的列表。单击预测的事件 ID 以查看预测解释。

1. 向下滚动到 “**预测解释**” 窗格。

1. 将**显示原始预测解释值**按钮设置为**开启**以查看所有变量的原始预测解释值。

### 使用适用于 Python 的 AWS 开发工具包 (Boto3) 查看预测解释
<a name="view-prediction-explanations-sdk"></a>

以下示例显示了使用`ListEventPredictions`和`GetEventPredictionMetadata` APIs 从 AWS SDK 中查看预测说明的示例请求。

**示例 1：使用 `ListEventPredictions` API 获取最新预测列表**

```
import boto3 
fraudDetector = boto3.client('frauddetector') 
fraudDetector.list_event_predictions(  
  maxResults = 10, 
  predictionTimeRange = {
     end_time: '2022-01-13T23:18:21Z',
     start_time: '2022-01-13T20:18:21Z'
    }
 )
```

**示例 2；使用 `ListEventPredictions` API 获取过去对事件类型 “注册” 的预测列表**

```
import boto3 
fraudDetector = boto3.client('frauddetector') 
fraudDetector.list_event_predictions(  
   eventType = {
      value = 'registration'
    } 
   maxResults = 70,
   nextToken = "10",
   predictionTimeRange = {
     end_time: '2021-07-13T23:18:21Z',
     start_time: '2021-07-13T20:18:21Z'
    }
 )
```

**示例 3：使用 `GetEventPredictionMetadata` API 获取在指定时间段内生成的指定事件 ID、事件类型、检测器 ID 和检测器版本 ID 的过去预测的详细信息。**

为该请求`predictionTimestamp`指定的值是通过首先调用 `ListEventPredictions` API 获得的。

```
import boto3 
fraudDetector = boto3.client('frauddetector') 
fraudDetector.get_event_prediction_metadata ( 
   detectorId = 'sample_detector',
   detectorVersionId = '1', 
   eventId = '802454d3-f7d8-482d-97e8-c4b6db9a0428', 
   eventTypeName = 'sample_registration', 
   predictionTimestamp = '2021-07-13T21:18:21Z' 
 )
```

## 了解预测解释是如何计算的
<a name="how-prediction-explanations-calculated"></a>

Amazon Fraud Detector 使用 [SHAP（SHapeley 加法解释）](https://arxiv.org/abs/1705.07874)通过计算用于模型训练的每个事件变量**的原始解释值**来解释单个事件的预测。原始解释值由模型在生成预测时作为分类算法的一部分进行计算。这些原始解释值表示每个输入对欺诈几率对数的贡献。使用映射将原始解释值（从-infinity到\+infinity）转换为**相对影响值**（-5 到 \+5）。从原始解释值中得出的相对影响值表示欺诈（正面）或合法（负）几率增加的次数，因此更容易理解预测解释。