

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 要監控偏差偏離的參數
<a name="clarify-config-json-monitor-bias-parameters"></a>

Amazon SageMaker 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` 為 `"label"` 並已指定 `"application/jsonlines"`，則最後一個標題將成為標籤欄的標題。
+ `"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>

以下是 JSON 檔案的範例，用來設定 CSV 和 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` 中的 `"features"` 參數值 (針對即時端點) 或 `BatchTransformInput` (針對批次轉換工作) 用於訂位資料集中的功能，而 `"predicted_label"` 參數值會從模型輸出中選取預測標籤。

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

或者，您可以使用 `ProbabilityThresholdAttribute` 參數值將機率值轉換為預測的二進位標籤。例如，0.6 的值表示大於 0.6 的的機率會預測二進位標籤為 1。

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