-
AI 모델 개발 - 혼돈 행렬, 지표 정리 ****카테고리 없음 2025. 8. 29. 14:49
AUC, ROC https://bioinformaticsandme.tistory.com/328
📊 혼돈 행렬(Confusion Matrix) & 평가 지표 정리
1. 혼돈 행렬 (Confusion Matrix)
이진 분류(Binary Classification) 기준:
실제 Positive (1) 실제 Negative (0) 예측 Positive (1) TP (True Positive) FP (False Positive) 예측 Negative (0) FN (False Negative) TN (True Negative) - TP (진짜 양성): 실제도 양성, 예측도 양성
- FP (가짜 양성, False Alarm): 실제는 음성인데 잘못 양성으로 예측
- FN (가짜 음성, Miss): 실제는 양성인데 놓침
- TN (진짜 음성): 실제도 음성, 예측도 음성
2. 기본 지표
(1) Accuracy (정확도)
전체 중 맞춘 비율
Accuracy = (TP + TN) / (TP + FP + FN + TN)
- 장점: 직관적, 이해하기 쉬움
- 단점: 클래스 불균형에 매우 취약 (예: 사기 1% → 전부 "정상" 예측해도 Accuracy=99%)
(2) Precision (정밀도)
예측을 Positive라 한 것 중, 실제 Positive 비율
Precision = TP / (TP + FP)
- FP 줄이기에 초점 → "양성이라고 했을 때 얼마나 믿을 수 있나?"
- 예: 스팸 필터, 잘못 걸러서 정상 메일 차단하면 안됨 → Precision 중요
(3) Recall (재현율, 민감도)
실제 Positive 중, 제대로 Positive라고 예측한 비율
Recall = TP / (TP + FN)
- FN 줄이기에 초점 → "실제 양성을 얼마나 놓치지 않나?"
- 예: 암 진단, 환자를 놓치면 안 됨 → Recall 중요
(4) Specificity (특이도)
실제 Negative 중, 제대로 Negative라고 예측한 비율
Specificity = TN / (TN + FP)
- FP 줄이는 것에 집중 → Recall의 반대 축
(5) F1 Score
Precision & Recall의 조화 평균
F1 = 2 * (Precision * Recall) / (Precision + Recall)
- Precision과 Recall이 균형 잡혀야 높음
- 불균형 데이터에서 Accuracy 대신 많이 사용
3. ROC Curve & AUC
ROC Curve
- x축: FPR (False Positive Rate = FP / (FP + TN)) --> 1 - Specificity : 실제 Negative 인 것들 중 Positive라고 잘 못 예측한 비율 - 거짓양성률
- y축: TPR (True Positive Rate = Recall = TP / (TP + FN)) : 실제 Positive 인 것들 중 Positive라고 잘 예측한 비율 - 참양성률
- Threshold(임계값)을 바꿔가며 그린 곡선
AUC (Area Under Curve)
- ROC Curve 밑의 면적
- 무작위 분류 = 0.5
- 완벽한 분류 = 1.0
- "양성을 양성답게, 음성을 음성답게 구분하는 전반적 능력"
Threshold : positive와 negative를 가를 기준점
Threshold를 낮추면 positive 비율이 증가하고, TPR도 늘어나고, FPR도 늘어난다.
Threshold를 높이면 positive 비율이 줄어들고, TPR, FPR은 줄어든다.
4. Precision-Recall Curve & PR AUC
https://kyull-it.tistory.com/176
분류모델 성능평가 지표 (2) : PR curve, mAP (mean Average Precision)
해당 글을 읽기 전에 먼저 알아야할 내용 Confusion Matrix로 분류모델 성능평가 지표(precision, recall, f1-score, accuracy) 구하는 방법 먼저 Confusion Matrix(혼동행렬)란, 이진분류(Binary Classification) 나 다중분
kyull-it.tistory.com
모델 평가하기 - 정확도만 높으면 좋은 모델?
* 카테고리 별로 읽기보다, 글 순서대로 읽는걸 추천드려요. 순서 정확도의 문제 재현율, 정밀도 F score 임계값 조절 PR curve vs ROC curve Confusion Matrix 1. 정확도의 문제 모델 성능을 비교할 때 그리고
hwi-doc.tistory.com
- x축: Recall : 실제 Positive들 중에서 모델이 Positive라고 예측한 비율
- y축: Precision : 모델이 Positive라고 한 것들 중에서 실제로 Positive인 비율
- 불균형 데이터셋에서 양성 클래스의 품질을 평가할 때 적합
- 불균형 데이터는 FPR이 너무 작아진다. Positive가 적으면 Positive라고 예측할 값이 너무 작아지니까
- PR-Curve는 Positive값에 집중하기 때문에 더 의미가 있음.
- Recall-Precision이 tradeoff인 이유
더보기이 둘이 왜 trade-off 관계인지, 스팸 메일 분류기를 예시로 들어볼게요.
우리가 스팸 메일을 아주 하나도 놓치지 않고 다 잡아내고 싶다고 해볼게요. 즉, 재현율을 높이고 싶은 거죠. 📈 재현율을 높이려면 모델이 조금만 의심스러워도 '스팸'이라고 판단하도록 기준을 아주 낮춰야 할 거예요. 그러면 어떻게 될까요?
- 진짜 스팸 메일은 거의 다 잡아내겠죠. (✅ 재현율 상승)
- 하지만 정상 메일인데도 '스팸'으로 잘못 분류되는 경우가 많아질 거예요. (❌ 정밀도 하락)
- 중요한 업무 메일이나 친구의 편지가 스팸함으로 들어가면 큰일이겠죠?
반대로, 스팸 메일함에 정상 메일이 단 한 통도 들어가지 않게 하고 싶다고 해볼게요. 즉, 정밀도를 높이고 싶은 거죠. 📈 정밀도를 높이려면 모델이 정말 확신할 때만 '스팸'이라고 판단하도록 기준을 아주 높여야 할 거예요. 그럼 어떻게 될까요?
- 정상 메일이 스팸으로 분류되는 일은 거의 없어지겠죠. (✅ 정밀도 상승)
- 하지만 스팸 메일인데도 '정상 메일'이라고 판단되어 우리에게 보이는 경우가 많아질 거예요. (❌ 재현율 하락)
- 광고 메일이나 불필요한 스팸이 계속 우리에게 들어오게 되겠죠.
이렇게 정밀도와 재현율은 서로 반비례하는 경향이 있기 때문에, 우리가 만드는 모델의 목적에 따라 둘 중 무엇을 더 중요하게 생각할지 결정해야 해요.
PR AUC 해석
- 값이 높을수록 희귀 Positive를 잘 잡아냄
- 단, 실제 운영에서는 특정 threshold 성능도 반드시 확인 필요
5. 지표 선택 가이드
- Accuracy: 클래스 균형이 잘 맞는 경우
- Precision: False Positive 비용이 큰 경우 (정상 메일 스팸 처리하면 안 됨)
- Recall: False Negative 비용이 큰 경우 (암 환자 놓치면 안 됨)
- F1 Score: Precision과 Recall의 균형 필요
- ROC AUC: 전반적 분류 능력 비교
- PR AUC: 불균형 데이터에서 양성 클래스 품질 평가
6. 추가 지표 (심화)
- MCC (Matthews Correlation Coefficient)
- 1 ~ 1 사이 값, 클래스 불균형에도 강건
- Balanced Accuracy
(Recall + Specificity) / 2
- Cohen’s Kappa
- 우연히 맞출 확률까지 보정한 지표
7. 정리표
지표 수식 초점 잘 쓰이는 경우 Accuracy (TP+TN)/(전체) 전체 맞춤률 균형 데이터 Precision TP/(TP+FP) 양성 예측 신뢰 스팸 필터 Recall TP/(TP+FN) 양성 놓침 방지 암 진단 F1 Score 2PR/(P+R) 균형 불균형 데이터 Specificity TN/(TN+FP) 음성 식별 보안 탐지 ROC AUC ROC 곡선 면적 구분 능력 모델 비교 PR AUC PR 곡선 면적 희귀 양성 평가 불균형 상황