Hey Tech
Multi-label Classification 평가지표: Example-based vs Label-based Evaluation 본문
AI & 빅데이터/머신러닝·딥러닝
Multi-label Classification 평가지표: Example-based vs Label-based Evaluation
Tony Park (토니) 2022. 7. 16. 13:06728x90
반응형
📚 목차
1. Example-based Evaluation
1.1. Exact-Match Ratio(EMR)
1.2. Accuracy
1.3. Precision
1.4. Recall
1.5. F1 Score
1.6. Hamming Loss
2. Label-based Evaluation
2.1. Macro average
2.2. Mico average
2.3. Weighted average
👨💻 들어가며
Multi-label Classification 모델 평가지표를 라벨(lael)을 기준으로 계산하는지 혹은 test example을 기준으로 계산하는지에 따라 평가 방법은 크게 2가지로 나뉩니다.
- 1) Example-based Evaluation
- 2) Label-based Evaluation
각각에 대해 알아봅니다.
1. Example-based Evaluation
Example-based Evaluation은 test example마다 정답 label과 예측 label 간의 차이를 구하고 평균을 취하는 평가 방법입니다.
1.1. Exact-Match Ratio(EMR)
- 'Subset accuracy'라고도 부름
- 평가지표의 이름처럼 엄격하게 얼마나 모델이 test example마다 모든 label을 잘 분류했는지 측정하는 평가지표
- 일부 label만 정답을 맞히는 경우는 무시하고 오직 모든 label에 대해 정답을 맞힌 경우만 평가
- EMR 값이 클수록 모델 성능이 우수하다고 평가
1.2. Accuracy
- Exact-Match와 다르게 전체 test example별 label의 정답을 맞힌 비율의 평균
- Accuracy 값이 클수록 모델 성능이 우수하다고 평가
1.3. Precision
- 모델이 Positive로 예측한 label의 개수 대비 실제 정답 label이 Positive인 개수 비율
- Precision 값이 클수록 모델 성능이 우수하다고 평가
- Recall과 Trade-off 관계
1.4. Recall
- 실제 정답 label이 Positive인 개수 대비 모델이 Positive로 예측한 label의 개수 비율
- Recall 값이 클수록 모델 성능이 우수하다고 평가
- Precision과 Trade-off 관계
1.5. F1 Score
- Precision과 Recall의 조화 평균
- F1 값이 클수록 모델 성능이 우수하다고 평가
- 조화 평균 사용이유: 산술평균과 비교했을 때 Class imbalance의 bias 작음
1.6. Hamming Loss
- test example마다 전체 라벨 중 몇 개의 라벨을 틀렸는지 계산하여 평균을 취한 값
- Hamming Loss 값이 작을수록 모델 성능이 우수하다고 평가
2. Label-based Evaluation
- label마다 예측값과 실젯값의 차이를 계산한 후 전체 label에 대해 평균을 취하는 평가 방식
- label마다 평가 지표를 계산하기 때문에 label마다 binary classification 문제이므로 기본적인 binary classification 평가 지표인 Precision, Recall, F1, ROC 등 사용 가능
- 평균을 구하는 방법에 따라 3가지 방법 존재
- 1) Macro-average
- 2) Micro-average
- 3) Weighted-average
2.1. Macro-average
- label마다 각각 평가 지표 계산 후 전체 test examle 개수로 평균을 계산하는 방식(i.e., unweighted average)
- label마다 support하는 개수는 고려하지 않고 label마다 얼마나 잘 분류했는지 확인 가능
- 모든 label의 중요도가 비슷하고, label마다 데이터 개수가 imbalance한 경우, macro-average를 사용하는 것이 효과적
- 라벨 A, B, C별 Confusion Matrix가 주어질 때 Macro-averaged Precision 계산 방법은 아래와 같음
1) 라벨 A
Actual Label \ Predicted class | Positive | Negative |
Positive | 35 | 15 |
Negative | 1 | 10 |
Macro-averaged Precision (A) = \(\frac{35}{35+1} = 0.972\)
2) 라벨 B
Actual Label \ Predicted class | Positive | Negative |
Positive | 45 | 3 |
Negative | 11 | 2 |
Macro-averaged Precision (B) = \(\frac{45}{45+11} = 0.804\)
3) 라벨 C
Actual Label \ Predicted class | Positive | Negative |
Positive | 27 | 3 |
Negative | 4 | 27 |
Macro-averaged Precision (C) = \(\frac{27}{27+4} = 0.871\)
전체 라벨 고려
Macro-averaged Precision = \(\frac{label별 Precision 값의 합}{전체 라벨 개수}\) = \(\frac{0.972+0.804+0.871}{3} = 0.882\)
2.2. Micro-average
- 모든 Label의 TP, TN, FP, FN을 한 번에 고려하여 평가 지표 계산 후 전체 test examle에 대해 평균 취하는 방식
- label마다 데이터 개수가 균형적이고(balanced) label마다 평가지표를 고려할 필요가 없을 때 효과적
- 위의 라벨 A, B, C별 Confusion Matrix 기반 Micro-averaged Precision 계산 방법은 아래와 같음
모든 label 고려
Actual Label \ Predicted class | Positive | Negative |
Positive | 107 | 21 |
Negative | 16 | 39 |
Micro-averaged Precision = \(\frac{107}{107+16} = 0.870\)
2.3. Weighted-average
- label마다 support하는 개수를 고려하여 평균을 구하는 방법
- support는 label마다 실젯값의 개수(TP + FN)
- Label마다 데이터가 imbalanced일 때 Label마다 support 하는 개수를 고려하고 싶은 경우 효과적
- 아래는 위의 A, B, C label별 Confusion Matrix를 고려한 Weighted average precision 구하는 예시
Label | Precision | Support | Support Proportion | Weighted Average |
A | 0.972 | 50 | 0.391 | (0.391*50) + (48*0.375) + (30*0.234) = 0.885 |
B | 0.804 | 48 | 0.375 | |
C | 0.871 | 30 | 0.234 | |
Total | - | 128 | 1.0 |
🗂 참고문헌
[1] Sorower, M. S. (2010). A literature survey on algorithms for multi-label learning. Oregon State University, Corvallis, 18(1), 25. [🔗PDF]
📚 참고할 만한 포스팅
1. 딥러닝 모델 평가 지표: Confusion Matrix, Accuracy, Precision, Recall, F1 Score, Average Precision
2. 딥러닝 모델 평가 지표: ROC Curve, AUC Score
3. Multi-label Classification 평가지표: Example-based vs Label-based Evaluation
오늘은 Multi-label Classification 모델 평가지표와 종류에 대해 알아봤습니다.
포스팅 내용에 오류가 있다면 아래에 댓글 남겨주세요😊
그럼 오늘도 즐거운 하루 보내시길 바랍니다.
고맙습니다 :)
728x90
반응형
'AI & 빅데이터 > 머신러닝·딥러닝' 카테고리의 다른 글
[Deep Learning] RNN 알고리즘 개념 이해 (0) | 2022.07.23 |
---|---|
[Deep Learning] Batch Normalization(배치 정규화) 개념 및 장점 (0) | 2022.07.22 |
딥러닝 모델 평가 지표: ROC Curve, AUC Score (0) | 2022.07.15 |
딥러닝 모델 평가 지표: Confusion Matrix, Accuracy, Precision, Recall, F1 Score, Average Precision (0) | 2022.07.14 |
[딥러닝] Grid Search, Random Search, Bayesian Optimization (0) | 2022.05.23 |