

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

# 分類器訓練輸出
<a name="train-classifier-output"></a>

Amazon Comprehend 完成自訂分類器模型訓練後，它會在 [CreateDocumentClassifier](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_CreateDocumentClassifier.html) API 請求或同等主控台請求中指定的 Amazon S3 輸出位置中建立輸出檔案。

當您訓練純文字模型或原生文件模型時，Amazon Comprehend 會建立混淆矩陣。當您訓練原生文件模型時，它可以建立其他輸出檔案。

**Topics**
+ [混淆矩陣](#conf-matrix)
+ [原生文件模型的其他輸出](#train-class-output-native)

## 混淆矩陣
<a name="conf-matrix"></a>

當您訓練自訂分類器模型時，Amazon Comprehend 會建立混淆矩陣，提供訓練中模型執行情況的指標。此矩陣顯示與實際文件標籤相比，模型預測的標籤矩陣。Amazon Comprehend 會使用一部分的訓練資料來建立混淆矩陣。

混淆矩陣提供哪些類別可以使用更多資料來改善模型效能的指示。具有高部分正確預測的類別沿著矩陣對角線具有最高的結果數量。如果對角線上的數字較低，則類別的正確預測分數較低。您可以為此類別新增更多訓練範例，並再次訓練模型。例如，如果 40% 的標籤 A 範例歸類為標籤 D，新增更多標籤 A 和標籤 D 的範例可增強分類器的效能。

Amazon Comprehend 建立分類器模型後，S3 輸出位置的 `confusion_matrix.json` 檔案會提供混淆矩陣。

視您使用多類別模式或多標籤模式訓練分類器而定，混淆矩陣的格式會有所不同。

**Topics**
+ [多類別模式的混淆矩陣](#m-c-matrix)
+ [多標籤模式的混淆矩陣](#m-l-matrix)

### 多類別模式的混淆矩陣
<a name="m-c-matrix"></a>

在多類別模式中，個別類別是互斥的，因此分類會為每個文件指派一個標籤。例如，動物可以是狗或貓，但不能同時是兩者。

請考慮下列多類別訓練分類器的混淆矩陣範例：

```
  A B X Y <-(predicted label)
A 1 2 0 4
B 0 3 0 1
X 0 0 1 0
Y 1 1 1 1
^
|
(actual label)
```

在此情況下，模型預測下列項目：
+ 一個「A」標籤準確預測，兩個「A」標籤錯誤預測為「B」標籤，四個「A」標籤錯誤預測為「Y」標籤。
+ 三個 "B" 標籤準確預測，一個 "B" 標籤錯誤預測為 "Y" 標籤。
+ 準確預測了一個「X」。
+ 一個「Y」標籤準確預測，一個錯誤預測為「A」標籤，一個錯誤預測為「B」標籤，另一個錯誤預測為「X」標籤。

矩陣中的對角線 (A：A、B：B、X：X 和 Y：Y) 會顯示準確的預測。預測錯誤是對角線外部的值。在此情況下，矩陣會顯示下列預測錯誤率：
+ 標籤：86%
+ B 標籤：25%
+ X 標籤：0%
+ Y 標籤：75%

分類器會以 JSON 格式的檔案傳回混淆矩陣。下列 JSON 檔案代表先前範例的矩陣。

```
{
 "type": "multi_class",
 "confusion_matrix": [
 [1, 2, 0,4],
 [0, 3, 0, 1],
 [0, 0, 1, 0],
 [1, 1, 1, 1]],
 "labels": ["A", "B", "X", "Y"],
 "all_labels": ["A", "B", "X", "Y"]
}
```

### 多標籤模式的混淆矩陣
<a name="m-l-matrix"></a>

在多標籤模式中，分類可以將一或多個類別指派給文件。請考慮下列多類別訓練分類器的混淆矩陣範例。

在此範例中，有三種可能的標籤：`Comedy`、 `Action`和 `Drama`。多標籤混淆矩陣會為每個標籤建立一個 2x2 矩陣。

```
Comedy                   Action                   Drama 
     No Yes                   No Yes                   No Yes   <-(predicted label)                                      
 No  2   1                No  1   1                No  3   0                                                         
Yes  0   2               Yes  2   1               Yes  1   1   
 ^                        ^                        ^
 |                        |                        |
 |-----------(was this label actually used)--------|
```

在此情況下，模型會針對`Comedy`標籤傳回下列項目：
+ 兩個準確預測`Comedy`標籤存在的執行個體。真陽性 (TP)。
+ 兩個準確預測`Comedy`標籤不存在的執行個體。真陰性 (TN)。
+ 錯誤預測`Comedy`標籤存在的零個執行個體。偽陽性 (FP)。
+ 一個錯誤預測`Comedy`標籤不存在的執行個體。偽陰性 (FN)。

如同多類別混淆矩陣，每個矩陣中的對角線會顯示準確的預測。

在此情況下，模型會準確預測 80% 的時間 `Comedy` (TP 加 TN) 標籤，並錯誤地預測 20% 的時間 (FP 加 FN)。



分類器會以 JSON 格式的檔案傳回混淆矩陣。下列 JSON 檔案代表先前範例的矩陣。

```
{
"type": "multi_label",
"confusion_matrix": [
 [[2, 1],        
 [0, 2]],
 [[1, 1],        
 [2, 1]],      
 [[3, 0],        
 [1, 1]]
], 
"labels": ["Comedy", "Action", "Drama"]
"all_labels": ["Comedy", "Action", "Drama"]
}
```

## 原生文件模型的其他輸出
<a name="train-class-output-native"></a>

當您訓練原生文件模型時，Amazon Comprehend 可以建立其他輸出檔案。

### Amazon Textract 輸出
<a name="textract-output"></a>

如果 Amazon Comprehend 調用 Amazon Textract APIs 來擷取任何訓練文件的文字，則會將 Amazon Textract 輸出檔案儲存在 S3 輸出位置。它使用下列目錄結構：
+ **訓練文件：**

  `amazon-textract-output/train/<file_name>/<page_num>/textract_output.json` 
+ **測試文件：**

  `amazon-textract-output/test/<file_name>/<page_num>/textract_output.json`

如果您在 API 請求中提供測試文件，Amazon Comprehend 會填入測試資料夾。

### 文件註釋失敗
<a name="failed-files-output"></a>

 如果有任何失敗的註釋，Amazon Comprehend 會在 Amazon S3 輸出位置 (**在 skipped\_documents/** 資料夾中） 中建立下列檔案：
+ failed\_annotations\_train.jsonl

  如果訓練資料中的任何註釋失敗，則檔案存在。
+ failed\_annotations\_test.jsonl

  如果請求包含測試資料，且測試資料中的任何註釋失敗，則檔案存在。

失敗的註釋檔案是 JSONL 檔案，格式如下：

```
{
     "File": "String", "Page": Number, "ErrorCode": "...", "ErrorMessage": "..."}
    {"File": "String", "Page": Number, "ErrorCode": "...", "ErrorMessage": "..."
  }
```