

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 분류기 학습 출력
<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는 학습 데이터의 일부를 사용하여 혼동행렬을 생성합니다.

혼동행렬은 모델 성능을 개선하기 위해 어떤 클래스가 더 많은 데이터를 사용할 수 있는지를 나타냅니다. 정확한 예측의 비율이 높은 클래스는 행렬의 대각선을 따라 나타나는 결과 수가 가장 많습니다. 대각선에 있는 숫자가 더 작은 경우 클래스의 정답 예측 비율이 더 낮습니다. 이 클래스에 더 많은 학습 예제를 추가하고 모델을 다시 학습시킬 수 있습니다. 예를 들어, 레이블 A 샘플의 40%가 레이블 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)은 정확한 예측치를 보여줍니다. 예측 오차는 대각선 밖의 값입니다. 이 경우 행렬은 다음과 같은 예측 오류율을 보여줍니다.
+ A 레이블: 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`로 지정할 수 있는 3개의 레이블을 사용할 수 있습니다. 멀티레이블 혼동행렬은 각 레이블에 대해 하나의 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` 레이블이 존재할 것으로 정확하게 예측된 사례는 2건. 참 긍정(TP) 
+ `Comedy` 레이블이 없을 것으로 정확하게 예측된 사례는 2건. 참 부정(TN)
+ `Comedy` 레이블이 존재할 것으로 잘못 예측된 사례는 0건. 거짓 긍정(FP)
+ `Comedy` 레이블이 없을 것으로 잘못 예측된 사례는 1건. 거짓 부정(FN)

멀티클래스 혼동행렬과 마찬가지로 각 행렬의 대각선은 정확한 예측치를 보여줍니다.

이 경우 모델은 80%의 확률(TP\+TN)로 `Comedy` 레이블을 정확하게 예측하고 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 API를 간접 호출하여 학습 문서의 텍스트를 추출한 경우 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": "..."
  }
```