분류기의 성능 평가 지표인 confusion matrix, precision(정밀도), recall(재현율), sensitivity(민감도), F1-score, ROC curve, AUC에 대해서 간단하게 기록합니다. Hands-On Machine Learning 2판을 참고하여 작성하였으며 이 외에 참고한 자료를 아래 references에 기록하였습니다.
Confusion Matrix
Confusion matrix는 다음 4개의 요소로 나눠서 분석할 수 있습니다.
- True Positive(TP): 목적 클래스에 대해서, 목적 클래스가 맞다고(Positive) 올바르게(True) 분류한 경우
- True Negative(TN): 목적 클래스가 아닌 것에 대해서, 목적 클래스가 아니라고(Negative) 올바르게(True) 분류한 경우
- False Positive(FP): 목적 클래스가 아닌 것에 대해서, 목적 클래스가 맞다고(Positive) 잘못(False) 분류한 경우
- False Negative(FN): 목적 클래스에 대해서, 목적 클래스가 아니라고(Negative) 잘못(False) 분류한 경우
Multi-class 상황에서 confusion matrix 예시1를 살펴봅시다.
Class A에 대해서 TP, TN, FP, FN 결과를 계산해보겠습니다.
- True Positive(TP): class A를 A라고 예측한 경우 =
- True Negative(TN): class A가 아닌 것을 A가 아니라고 예측한 경우 =
- False Positive(FP): class A가 아닌 것을 A라고 예측한 경우 =
- False Negative(FN): class A를 A가 아니라고 예측한 경우 =
Precision
Precision은 분류기가 목적 클래스라고 분류한 것 중에서 실제로도 그 목적 클래스가 맞는 것의 비율을 의미합니다. 양성 예측의 정확도라고도 이해할 수 있습니다.
Class A에 대해서 Precision을 계산해보겠습니다.
Recall (Sensitivity, TPR)
Precision은 확실한 양성 샘플 하나만 예측하면 매우 높게(1/1=100%) 나올 수 있기 때문에, 을 고려한 Recall 지표도 함께 사용하는 것이 좋습니다.
Recall은 전체 목적 클래스 샘플에 대해서 분류기가 실제로 그 목적 클래스를 올바르게 분류한 비율을 의미합니다. 분류기가 정확하게 감지한 양성 샘플의 비율로도 이해할 수 있습니다. 민감도(sensitivity) 또는 진짜 양성 비율(TPR, True Positive Rate)이라고도 합니다.
Class A에 대해서 Recall을 계산해보겠습니다.
F1-score
Precision과 Recall을 F1-score라고 하는 하나의 숫자로 만들면 편리할 때가 많습니다. 특히 두 분류기를 비교할 때 그렇습니다. F1-score는 Precision과 Recall의 조화 평균이며 식으로는 아래와 같이 표현됩니다.
Class A에 대해서 F1-score를 계산해보겠습니다.
ROC curve
ROC는 Receiver Operation Characteristic(수신기 조작 특성)의 약자이며 아래의 의미를 갖습니다.
- ROC curve: TPR(진짜 양성 비율) vs. FPR(가짜 양성 비율)
- ROC curve: Recall(Sensitivity, 민감도) vs. 1 - Specificity(특이도)
분류기의 성능은 고정해두고 decision threshold만 움직여 TPR을 높인다면 FPR도 같이 높아지기 때문에 trade-off가 존재합니다. 또한 ROC curve 곡선의 아래 면적(area under the curve, AUC)을 측정하면 분류기들을 비교할 수 있습니다. 완벽한 분류기는 ROC의 AUC이 1이고 랜덤 분류기는 0.5입니다.
추가적으로, ROC curve의 빨간 점과 현의 휨 정도에 대한 의미가 잘 정리되어 있는 글을 reference에 링크3하였습니다. 꼭 참고하시는 것을 추천드립니다.
References
-
Joydwip Mohajon, Confusion Matrix for Your Multi-Class Machine Learning Model
↩ -
Géron, Aurélien. Hands-on machine learning with Scikit-Learn, Keras, and TensorFlow: Concepts, tools, and techniques to build intelligent systems. O'Reilly Media, 2019.
↩ -
공돌이의 수학정리노트, ROC curve. https://angeloyeo.github.io/2020/08/05/ROC.html
↩