

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

# 监测偏压飘移的参数
<a name="clarify-config-json-monitor-bias-parameters"></a>

Ama SageMaker zon Clarify 偏差监控会重复使用分析配置中使用的参数子集。[分析配置文件](clarify-processing-job-configure-analysis.md)介绍完配置参数后，本主题将提供 JSON 文件的示例。这些文件用于配置 CSV 和 JSON 行数据集，以便在机器学习模型投入生产时监控这些数据集的偏差偏移。

必须在 JSON 文件中提供以下参数。此 JSON 文件的路径必须在 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelBiasAppSpecification](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelBiasAppSpecification) API 的 `ConfigUri` 参数中提供。
+ `"version"` -（可选）配置文件的架构版本。如果未提供，则使用支持的最新版本。
+ `"headers"` -（可选）数据集中的列名称列表。如果 `dataset_type` 为 `"application/jsonlines"` 且指定了 `"label"`，则最后一个标题将成为标签列的标题。
+ `"label"` -（可选）用于*偏差指标* 的模型的目标属性。指定为列名或索引（如果数据集格式为 CSV），或者指定为 JMESPath （如果数据集格式为 JSON 行）。
+ `"label_values_or_threshold"` -（可选）标签值或阈值列表。表示用于偏差指标的阳性结果。
+ `"facet"` -（可选）作为敏感属性的特征列表，称为分面。分面以成对的形式用于*偏差指标*，包括以下内容：
  + `"name_or_index"` - 分面列名称或索引。
  + `"value_or_threshold"` -（可选）分面列可以采用的值或阈值列表。表示敏感组，例如用于衡量偏差的组。如果未提供，则每个唯一值（而不是所有值）的偏差指标将按一个组进行计算。如果分面列为数字，则应用此阈值作为选择敏感组的下限。
+ `"group_variable"` -（可选）列名称或索引，指示用于*偏差指标**条件人口统计差异* 的组变量。

其他参数应在 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelBiasJobInput](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelBiasJobInput) API 的 `EndpointInput`（对于实时端点）或 `BatchTransformInput`（对于批量转换作业）中提供。
+ `FeaturesAttribute` - 如果端点输入数据格式为 `"application/jsonlines"`，则需要使用此参数。如果数据集格式为 JSON 线，则它 JMESPath用于定位特征列。
+ `InferenceAttribute`— 目标属性在模型输出中的索引或 JMESPath 位置，用于使用偏差指标监测偏差。如果在 CSV `accept_type` 情况下未提供该值，则假定模型输出是与得分或概率相对应的单个数值。
+ `ProbabilityAttribute`— 概率在模型输出中的索引或 JMESPath 位置。例如，如果模型输出是带有标签和概率列表的 JSON 行，则会选择与最大概率对应的标签进行偏差计算。
+ `ProbabilityThresholdAttribute` -（可选）一个浮点值，用于表示在二进制分类情况下选择二进制标签的阈值。默认值为 0.5。

## CSV 和 JSON 行数据集的 JSON 配置文件示例
<a name="clarify-config-json-monitor-bias-parameters-examples"></a>

以下是用于配置 CSV 和 JSON 行数据集以监控其偏差偏移的 JSON 文件示例。

**Topics**
+ [CSV 数据集](#clarify-config-json-monitor-bias-parameters-example-csv)
+ [JSON 行数据集](#clarify-config-json-monitor-bias-parameters-example-jsonlines)

### CSV 数据集
<a name="clarify-config-json-monitor-bias-parameters-example-csv"></a>

考虑一个包含四个特征列和一个标签列的数据集，其中第一个特征和标签为二进制，如下例所示。

```
0, 0.5814568701544718, 0.6651538910132964, 0.3138080342665499, 0
1, 0.6711642728531724, 0.7466687034026017, 0.1215477472819713, 1
0, 0.0453256543003371, 0.6377430803264152, 0.3558625219713576, 1
1, 0.4785191813363956, 0.0265841045263860, 0.0376935084990697, 1
```

假设模型输出有两列，其中第一列是预测标签，第二列是概率，如下例所示。

```
1, 0.5385257417814224
```

然后，以下 JSON 配置文件显示了一个示例，介绍如何配置此 CSV 数据集。

```
{
    "headers": [
        "feature_0",
        "feature_1",
        "feature_2",
        "feature_3",
        "target"
    ],
    "label": "target",
    "label_values_or_threshold": [1],
    "facet": [{
        "name_or_index": "feature_1",
        "value_or_threshold": [1]
    }]
}
```

预测标签由 `"InferenceAttribute"` 参数选择。使用从零开始的编号，因此 0 表示模型输出的第一列。

```
"EndpointInput": {
    ...
    "InferenceAttribute": 0
    ...
}
```

或者，您可以使用不同的参数将概率值转换为二进制预测标签。使用从零开始的编号：1 表示第二列；`ProbabilityThresholdAttribute` 值为 0.6 表示大于 0.6 的概率预测二进制标签为 1。

```
"EndpointInput": {
    ...
    "ProbabilityAttribute": 1,
    "ProbabilityThresholdAttribute": 0.6
    ...
}
```

### JSON 行数据集
<a name="clarify-config-json-monitor-bias-parameters-example-jsonlines"></a>

考虑一个包含四个特征列和一个标签列的数据集，其中第一个特征和标签为二进制，如下例所示。

```
{"features":[0, 0.5814568701544718, 0.6651538910132964, 0.3138080342665499], "label":0}
{"features":[1, 0.6711642728531724, 0.7466687034026017, 0.1215477472819713], "label":1}
{"features":[0, 0.0453256543003371, 0.6377430803264152, 0.3558625219713576], "label":1}
{"features":[1, 0.4785191813363956, 0.0265841045263860, 0.0376935084990697], "label":1}
```

假设模型输出有两列，其中第一列是预测标签，第二列是概率。

```
{"predicted_label":1, "probability":0.5385257417814224}
```

以下 JSON 配置文件显示了一个示例，介绍如何配置此 JSON 行数据集。

```
{
    "headers": [
        "feature_0",
        "feature_1",
        "feature_2",
        "feature_3",
        "target"
    ],
    "label": "label",
    "label_values_or_threshold": [1],
    "facet": [{
        "name_or_index": "feature_1",
        "value_or_threshold": [1]
    }]
}
```

然后，使用 `EndpointInput`（对于实时端点）或 `BatchTransformInput`（对于批量转换作业）中的 `"features"` 参数值来定位数据集中的特征，`"predicted_label"` 参数值从模型输出中选择预测标签。

```
"EndpointInput": {
    ...
    "FeaturesAttribute": "features",
    "InferenceAttribute": "predicted_label"
    ...
}
```

或者，您可以使用 `ProbabilityThresholdAttribute` 参数值将概率值转换为预测的二进制标签。例如，值为 0.6 表示大于 0.6 的概率预测二进制标签为 1。

```
"EndpointInput": {
    ...
    "FeaturesAttribute": "features",
    "ProbabilityAttribute": "probability",
    "ProbabilityThresholdAttribute": 0.6
    ...
}
```