🔲 Confusion Matrix란?
모델의 예측 결과를 실제값 vs 예측값 기준으로 4가지로 분류한 표예요.
어디서 맞고, 어디서 틀렸는지 한눈에 파악할 수 있어요!
📋 Classification Report란?
Confusion Matrix의 4가지 숫자(TP·FP·FN·TN)를 바탕으로
Precision, Recall, F1-score, Accuracy 등 다양한 평가 지표를 한 번에 보여주는 요약표예요!
🔲 Step 1 — Confusion Matrix
예측값 (Predicted)
Positive (1) Negative (0)
✅ TP — 실제 양성, 양성으로 예측 (정답!)
❌ FN — 실제 양성, 음성으로 예측 (미탐)
❌ FP — 실제 음성, 양성으로 예측 (오탐)
✅ TN — 실제 음성, 음성으로 예측 (정답!)
📊 주요 평가 지표
📋 Classification Report
📋 Step 3 — Classification Report
📖 각 열(column) 설명
Precision
TP / (TP + FP)
"양성이라고 예측한 것 중 실제 양성의 비율"
FP(오탐)를 줄이고 싶을 때 중요해요.
예) 스팸 필터 — 정상 메일을 스팸으로 잘못 거르면 안 되니까!
0.9 이상 — 매우 좋음 0.8~0.9 — 좋음 0.7~0.8 — 보통 0.7 미만 — 개선 필요
⚠️ 도메인마다 기준이 달라요 — 의료·금융은 더 높은 기준 적용
Recall
TP / (TP + FN)
"실제 양성 중 맞게 잡아낸 비율"
FN(미탐)을 줄이고 싶을 때 중요해요.
예) 암 진단 — 실제 환자를 놓치면 절대 안 되니까!
0.9 이상 — 매우 좋음 0.8~0.9 — 좋음 0.7~0.8 — 보통 0.7 미만 — 개선 필요
⚠️ 암·사기 탐지 등 미탐이 치명적인 경우 0.95 이상 요구하기도 해요
F1-Score
2 × P × R / (P + R)
"Precision과 Recall의 조화평균"
둘 다 균형있게 고려하고 싶을 때 써요.
예) 클래스 불균형이 있는 데이터셋에서 특히 유용해요!
0.9 이상 — 매우 좋음 0.8~0.9 — 좋음 0.7~0.8 — 보통 0.7 미만 — 개선 필요
⚠️ Precision과 Recall 중 하나가 극단적으로 낮으면 F1도 낮아져요
Support
실제 샘플 수
"각 클래스에 실제로 몇 개의 샘플이 있는지"
Support가 너무 적으면 지표가 신뢰하기 어려워요.
예) Support=2이면 지표가 들쭉날쭉할 수 있어요!
100 이상 — 신뢰도 높음 30~100 — 무난 30 미만 — 지표 해석 주의
⚠️ 클래스 간 Support 차이가 크면 클래스 불균형을 의심해봐요
Macro avg
(클래스별 지표) 단순 평균
"각 클래스의 지표를 샘플 수 상관없이 동등하게 평균"
클래스 불균형이 있어도 모든 클래스를 동등하게 봐요.
예) 희귀 질병 탐지처럼 소수 클래스도 중요할 때!
0.85 이상 — 매우 좋음 0.75~0.85 — 좋음 0.75 미만 — 개선 필요
⚠️ Accuracy보다 Macro avg가 낮다면 특정 클래스 성능이 나쁜 거예요
Accuracy
(TP + TN) / 전체
"전체 샘플 중 맞게 예측한 비율"
클래스가 균형잡혀 있을 때 신뢰할 수 있어요.
예) 클래스 불균형 시엔 높아도 속을 수 있어요! ⚠️
0.95 이상 — 매우 좋음 0.85~0.95 — 좋음 0.75~0.85 — 보통 0.75 미만 — 개선 필요
⚠️ 불균형 데이터에선 Accuracy 90%도 사실 무의미할 수 있어요