머신러닝 성능 평가 지표(Machine Learning Evaluation Metric) (1) - 분류 성능 평가 지표
※ 본 글은 <파이썬 머신러닝 완벽 가이드(위키북스)> 책 공부 내용&개인적으로 공부한 내용을 정리한 글입니다!
머신러닝 모델의 성능 평가 지표
머신러닝 모델을 이용하여 예측을 수행할 때, 해당 모델의 성능 평가를 위해 고안된 지표.
성능 평가 지표는 모델이 분류(Classification)냐, 회귀(Regression)냐에 따라 달라지고,
단순 분류 문제인지 혹은 객체 인식(Object Detection)인지에 따라서도 사용하는 지표들이 조금씩 다르다.
분류(Classification)에 사용되는 성능 평가 지표
- 오차 행렬(Confusion Matrix)
- 정확도(Accuracy)
- 정밀도(Precision)
- 재현율(Recall)
- F1-score
- ROC AUC
1. 오차 행렬(Confusion Matrix)
오차 행렬(Confusion Matrix)은 학습된 분류 모델이 예측을 수행하면서 얼마나 헷갈리고 있는지도 함께 보여주는 지표로, 이진 분류의 예측 오류가 얼마인지와 더불어, 어떠한 유형의 예측 오류가 발생하고 있는지를 함께 파악할 수 있다.
2. 정확도(Accuracy)
정확도 = (예측 결과와 실제 값이 동일한 건수)/(전체 데이터 수) = (TN+TP)/(TN+FP+FN+TP)
정확도는 개인적으로 '모델 성능 평가 지표' 하면 제일 먼저 떠오르는 것으로, 실제 데이터와 예측 데이터가 얼마나 같은지를 나타내주는 지표이다.
가장 직관적으로 모델의 예측 성능을 나타내주기 때문에 많이 쓰이지만 주의해야 할 점이 있다.
불균형한 이진 데이터 세트(특정 클래스의 비율이 다른 클래스의 비율보다 압도적으로 높은 경우)에서는 Positive의 데이터 건수가 적어, 정확도만으로는 분류 성능을 제대로 판단할 수 없다.
예) 10000건의 데이터 중 100건만 Positive인 경우 -> 무조건 Negative로 판단하는 단순 로직만으로도 정확도 99.9%를 달성할 수 있음.
따라서, 정확도는 분류 모델의 성능을 측정할 수 있는 여러 성능 평가 지표 중 하나일 뿐이라는 것을 명심해야 한다.

3. 정밀도(Precision)와 재현율(Recall)
정밀도와 재현율은 Positive 데이터 세트의 예측 성능에 좀 더 초점을 맞춘 성능 평가 지표이다.
- 정밀도(Precision) = TP / (FP + TP)
예측을 Positive로 한 대상 중에 예측과 실제 값(정답)이 Positive로 일치한 데이터의 비율로, 양성 예측도라고도 불린다.
모델의 Positive 예측 값(FP+TP) 이 실제 Positive 값(TP), 즉 정답과 얼마나 잘 일치하는지를 나타내는 지표이다.
- 재현율(Recall) = TP / (FN + TP)
실제 값이 Positive인 대상 중에 예측과 실제 값이 Positive로 일치한 데이터의 비율로, 민감도(Sensitivity) 또는 TPR(True Positive Rate)라고도 불린다.
실제 Positive 값(FN + TP) 중, 모델이 몇 개의 실제 값(TP)을 맞췄는지를 보는 지표이다.
재현율과 정밀도는 서로 보완적인 지표로 분류의 성능을 평가하는 데에 사용되며, 둘 중 한 가지 평가 지표만 높고 나머지 하나는 낮은 경우는 바람직하지 않다.
- 재현율이 상대적으로 더 중요한 경우: 실제 Positive 데이터를 Negative로 잘못 판단할 시 큰 영향이 발생하는 경우
ex) 암 판단 모델, 금융 사기 적발 모델
- 정밀도가 상대적으로 더 중요한 경우: 실제 Negative 데이터를 Positive로 잘못 판단할 시 큰 영향이 발생하는 경우
ex) 스팸 메일 판단 모델
- 정밀도, 재현율 트레이드오프(TradeOff)
분류하려는 업무의 특성상 재현율 또는 정밀도 둘 중 하나가 특별히 강조되어야 할 경우 분류의 결정 임곗값(Threshold)을 조정해 정밀도 또는 재현율의 수치를 높일 수 있으나, 이 둘은 상호 보완적인 지표이기 때문에 어느 한 쪽을 강제로 높이면 다른 하나의 수치가 떨어진다. 이 것을 정밀도/재현율의 트레이드오프라 부름.
4. F1-score
정밀도와 재현율을 결합한 지표로 정밀도와 재현율이 어느 한 쪽으로 치우치지 않을 때 높은 값을 가짐.
5. ROC 곡선(Receiver Operation Characteristic Curve)과 AUC(Area Under Curve)
ROC 곡선은 FPR(False Positive Rate)이 변할 때 TPR(True Positive Rate, 재현율, *민감도[Sensitivity])이 어떻게 변하는지를 나타내는 곡선이다.
FPR = FP / (FP + TN ) = 1 - TNR = 1 - **특이성(Specificity)
*민감도: 실제 값 Positive(양성)이 정확히 예측돼야 하는 수준
** 특이성: 실제 값 Negative(음성)이 정확히 예측돼야 하는 수준
AUC는 말 그대로 ROC 곡선 밑의 면적을 구한 것으로, 1에 가까울수록 분류의 성능이 뛰어남을 의미한다. AUC 수치가 커지려면 FPR이 작은 상태에서 얼마나 큰 TPR을 얻을 수 있는지가 관건이다.
ROC 곡선과 AUC 스코어는 이진 분류의 성능을 측정하는 데 중요하게 사용된다.
위 ROC 곡선을 보면 FPR(Positive 값을 Negative로 잘못 예측한 비율)이 0에 가까울수록, TPR(Positive를 Positive로 올바르게 예측한 비율)이 1에 가까울 수록 성능이 높아짐을 알 수 있다.
- AUC 0.5: 랜덤 수준의 이진 분류기
- AUC 0.5~0.7: 성능 보통
- AUC 0.8: 분류기 성능 Good
객체 인식(Object Detection) 에 사용되는 성능 평가 지표
- 재현율(Recall)-정밀도(Precision) 곡선
- mAP(mean Average Precision)
- IoU(Intersection over Union)
위 세 가지 지표는 객체 인식(Object Detection) 뿐 아니라, Segmentation에서도 활용되는 지표이다. 객체의 클래스 분류 류 성능, 그리고 모델의 검출 영역이 정답와 일치하는지까지도 평가한다.
1. Recall-Precision 곡선
P-R 곡선은 confidence 레벨(모델이 검출 결과에 대해 얼만큼 확신을 가지고 있는지에 대한 지표)에 대한 임곗값(threshold) 값의 변화에 기반하여 물체 검출기의 성능을 평가하는 방법이다.
예를 들어 고양이인지 아닌지를 판단하는 모델이 있을 때, 10장의 고양이 이미지 데이터에 해당 모델을 테스트했을 때, confidence 값과 판단 결과 값은 아래와 같다.
검출 결과 | confidences (threshold: 70%) | 판단 결과 |
1. 검출(P) | 72% | O(P) |
2. 검출(P) | 77% | O(P) |
3. 검출(P) | 37% | X(N) |
4. 검출(P) | 99% | O(P) |
5. 미검출(N) | - | X(N) |
6. 검출(P) | 44% | X(N) |
7. 미검출(N) | - | X(N) |
8. 미검출(N) | - | X(N) |
9. 검출 | 66% | X(N) |
10. 검출 | 82% | O(P) |
threshold를 70으로 잡게 되면 confidence가 70% 이상인 것만 정답으로 간주하므로, 재현율과 정밀도는 각각 아래와 같다.
재현율 = TP / (FN + TP) = 4 / 10 = 40%
정밀도 = TP / (FP + TP) = 4 / 7 = 57.14%
이 때, threshold를 40으로 잡으면 판단 결과가 아래와 같이 변한다.
검출 결과 | confidences (threshold: 40%) | 판단 결과 |
1. 검출(P) | 72% | O(P) |
2. 검출(P) | 77% | O(P) |
3. 검출(P) | 37% | X(N) |
4. 검출(P) | 99% | O(P) |
5. 미검출(N) | - | X(N) |
6. 검출(P) | 44% | O(P) |
7. 미검출(N) | - | X(N) |
8. 미검출(N) | - | X(N) |
9. 검출 | 66% | O(P) |
10. 검출 | 82% | O(P) |
threshold 값을 confidence 70% 이상으로 잡았을 때는 검출되지 않았던 6번, 9번 항목이 threshold 값을 confidence 40%으로 잡자 검출되었다. 이에 따라, 재현율과 정밀도는 아래와 같이 변한다.
재현율 = 6 / 10 = 0.6
정밀도 = 6 / 7 = 0.85
이와 같이 confidence 레벨에 기반한 threshold 값을 변화시켜 나타나는 정밀도, 재현율 값을 그래프로 나타낸 것이 PR 곡선이다.
※ 해당 부분은 bskyvision님의 블로그 포스팅 https://bskyvision.com/465을 참고하여 작성하였습니다.
2. mAP(mean Average Precision)
AP(Average Precision)이란, PR 곡선의 모양을 단조롭게 바꿔준 다음 그 면적을 계산한 것으로, PR 곡선을 이용해서 정량젹으로 성능을 평가할 때 사용하는 지표이다.
mAP(mean Average Precision)은 객체 클래스가 여러 개인 경우, 각 클래스당 AP를 구한 값을 모두 합한 후 객체 클래스의 수만큼 나눈 것을 의미한다.
3. IoU(Intersection over Union)
모델이 예측한 객체 영역과 객체의 실제 영역(정답 영역)이 얼마나 일치하는지를 나타내는 지표.
0~1 사이의 값을 가지며 값이 일반적으로 0.5 이상의 값을 가질 경우 모델이 객체 영역을 잘 예측했다고 판단한다( IoU 0.5 이상이 나오려면 모델이 예측한 영역과 실제 정답 영역이 2/3 이상 일치해야 함).
Object Detection 및 Segmentation에서는 객체 영역을 얼만큼 정확히 예측했는지도 중요하기 때문에, 클래스 분류와 관련된 성능 평가 지표와 IoU를 같이 활용해서 모델의 성능 평가를 하는 것이 바람직하다.