

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

# `EnableExplanations` 表达式
<a name="clarify-online-explainability-create-endpoint-enable"></a>

`EnableExplanations` 参数是一个 [https://jmespath.org/](https://jmespath.org/) 布尔表达式字符串。它会针对解释能力请求中的**每个记录**进行评估。如果该参数的计算结果为 **true**，则将对记录进行解释。如果该参数的计算结果为 **false**，则不会生成解释。

SageMaker Clarify 将每条记录的模型容器输出反序列化为兼容 JSON 的数据结构，然后使用`EnableExplanations`参数来评估数据。

**注意**  
根据模型容器输出的格式，有两个记录选项。  
如果模型容器输出采用 CSV 格式，则记录将以 JSON 数组的形式加载。
如果模型容器输出采用 JSON 行格式，则记录将以 JSON 对象的形式加载。

`EnableExplanations`参数是一个可以在`InvokeEndpoint`或`CreateEndpointConfig`操作期间传递的 JMESPath 表达式。如果您提供的 JMESPath 表达式无效，则端点创建将失败。如果该表达式有效，但表达式计算出现意外结果，则端点将成功创建，但是调用端点时会出现错误。使用 `InvokeEndpoint` API 测试 `EnableExplanations` 表达式，然后将该表达式应用于端点配置。

下面是有效 `EnableExplanations` 表达式的一些示例。在示例中， JMESPath 表达式使用反引号字符括住文字。例如，``true`` 表示 true。


| 表达式（字符串表示） | 模型容器输出（字符串表示） | 计算结果（布尔值） | 含义 | 
| --- | --- | --- | --- | 
|  '`true`'  |  （不适用）  |  True  |  无条件激活在线解释能力。  | 
|  '`false`'  |  （不适用）  |  False  |  无条件地停用在线解释能力。  | 
|  '[1]>`0.5`'  |  '1,0.6'  |  True  |  对于每个记录，模型容器都会输出其预测标签和概率。解释一个记录的概率（在索引 1 处）是否大于 0.5。  | 
|  'probability>`0.5`'  |  '\$1"predicted\$1label":1,"probability":0.6\$1'  |  True  |  对于每个记录，模型容器都会输出 JSON 数据。解释一个记录的概率是否大于 0.5。  | 
|  '\$1contains(probabilities[:-1], max(probabilities))'  |  '\$1"probabilities": [0.4, 0.1, 0.4], "labels":["cat","dog","fish"]\$1'  |  False  |  对于多分类模型：解释一个记录的预测标签（具有最大概率值的分类）是否为最后一个分类。从字面看，该表达式意味着最大概率值不在排除最后一个概率的概率列表中。  | 