평가지표(Performance Metrics) 완전 정리_ADsP 3과목

📏 평가지표(Performance Metrics) 완전 정리

“문제를 잘 풀었는지 숫자로 증명하는 방법”


🧭 0. 먼저, 어떤 문제인가요?

  • 🎯 분류(Classification) — 스팸/정상, 이탈/유지 등 범주 예측
  • 📈 회귀(Regression) — 매출액, 체중 등 연속값 예측
  • 🧩 군집(Clustering) — 비슷한 것끼리 묶기
  • 🔎 순위/추천(Ranking/Recommender) — 추천 리스트/검색 품질
  • 시계열(Time-series) — 예측 오차를 기간별로 평가

문제 유형이 다르면 지표도 달라집니다!


🧮 1. 분류 평가 — 혼동행렬부터! (이진분류)

🔷 1-1. 혼동행렬(Confusion Matrix)

실제 양성(P)실제 음성(N)
예측 양성TP (진양성)FP (거짓양성)
예측 음성FN (거짓음성)TN (진음성)

🔹 1-2. 핵심 지표

  • 🎯 정확도(Accuracy) = (TP+TN)/(P+N)
  • → 불균형 데이터에 취약 ⚠️
  • 🔍 정밀도(Precision) = TP/(TP+FP)
  • → “양성이라 한 것 중 진짜 비율”
  • 🚨 재현율(Recall, Sensitivity) = TP/(TP+FN)
  • → “실제 양성 중 잡아낸 비율”
  • 🧯 특이도(Specificity) = TN/(TN+FP)
  • → “실제 음성 중 음성으로 맞춘 비율”
  • ⚖️ F1 = 2·(Precision·Recall)/(Precision+Recall)
  • → 정밀도·재현율 균형 지표
  • 🎚️ : 재현율을 β배 더 중요하게
  • → β>1이면 재현율 중시, β<1이면 정밀도 중시
  • 🎢 ROC-AUC: 모든 임계값에서 TPR vs FPR 곡선 면적
  • → 클래스 불균형에 비교적 강함
  • 📈 PR-AUC: Precision-Recall 곡선 면적
  • 희소 양성(극불균형) 에 더 적합
  • 🧮 Log Loss(=Cross-Entropy): 확률 예측 품질
  • → “확률 보정(calibration)”까지 반영
  • 🧠 MCC(Matthews Corr. Coef.): -1~1, 불균형에도 견고
  • 🧾 Cohen’s κ(카파): 우연 일치 보정 정확도

🧷 1-3. 임계값(Threshold) 선택 팁

  • 기본 0.5가 정답이 아님!
  • 🪄 Youden’s J(TPR−FPR 최대), F1 최대점, 업무 비용(코스트) 기준 등으로 조정
  • 의료/사기탐지처럼 FN 비용이 크면 → 임계값 낮춰 Recall↑

🧯 1-4. 다중분류(Multi-class) 평균 방식

  • Macro: 클래스별 지표 평균(클래스 균등 가중)
  • Weighted: 샘플 수로 가중 평균(큰 클래스에 영향↑)
  • Micro: 전체 TP/FP/FN 합쳐서 계산(샘플 단위)

불균형이면 macro-F1 또는 weighted-F1 권장!


📈 2. 회귀 평가 — 오차를 어떻게 볼까?

지표의미/특징해석 포인트
📏 MAE절대오차 평균이상치에 민감, 직관적
📉 MSE제곱오차 평균큰 오차에 페널티
📉 RMSE√MSE, 단위 동일스케일 큰 오차 민감, 자주 쓰임
📘 설명력(0~1+)음수도 가능(형편없는 모델)
🧮 Adj. R²자유도 보정 R²불필요 변수 추가 패널티
📦 RMSLE로그 스케일 오차상대오차에 민감, 0 이슈 적음
🧊 MedAE중앙값 절대오차이상치 강건(robust)
🎯 MAPE평균 절대 백분율 오차0 근처 값에 취약(폭주)
🔁 sMAPE대칭형 MAPE0 근처 완화, 0~200%
🧷 Huber LossMAE+MSE 절충이상치 완충(δ 기준)
🎯 Pinball(Quantile) Loss분위수 회귀예: P90 예측에 적합

지표는 업무 목표데이터 분포에 맞춰 선택!

(0 많은 데이터는 RMSLE / sMAPE, 이상치 많으면 MAE/MedAE/Huber)


🧩 3. 군집(Clustering) 평가

내부 지표(라벨 없음)

  • 🧭 Silhouette: −1~1, 클수록 군집 분리/응집 좋음
  • 🧊 Davies–Bouldin(DBI): 낮을수록 좋음
  • 📈 Calinski–Harabasz(CH): 높을수록 좋음

외부 지표(정답 라벨 있음)

  • 🧮 ARI(Adjusted Rand Index): 군집-정답 일치(우연 보정)
  • 🧷 NMI(Normalized Mutual Info): 정보량 기준 일치도
  • 🧼 Purity: 각 군집 내 다수 라벨 비율(단, 군집 수↑에 민감)

🔎 4. 순위/추천(Ranking·Recommender)

  • 🎯 Precision@k / Recall@k: 상위 k개 리스트 품질
  • 👑 MRR (Mean Reciprocal Rank): 첫 정답의 역순위 평균
  • 🏆 MAP (Mean Avg. Precision): 문서별 AP 평균(검색)
  • 📚 NDCG@k: 관련성 등급(grade) 반영한 순위 품질
  • 📈 Hit Rate@k: 상위 k 안에 하나라도 맞췄나?

추천/검색은 정답의 위치가 중요 → NDCG/MAP이 더 적합!


🔧 5. 보정(Calibration)과 비용(Cost)

  • 🎯 Calibration: “0.8라고 하면 실제로 80% 맞느냐”
  • 지표: Brier Score(낮을수록 좋음), Calibration Curve
  • 💸 Cost-sensitive: FP/FN 비용 다르면 커스텀 비용함수로 최적 임계값 선택
  • 📊 Lift/Gain: 마케팅 타깃팅에서 상위 구간 효과

🧪 6. 미니 예시 (이진 분류)

데이터: P=100, N=900 (불균형). 모델 A와 B 비교.

  • A: Accuracy 95% (좋아보임) / Recall 20%, Precision 50%, F1=0.29
  • B: Accuracy 92% / Recall 60%, Precision 40%, F1=0.48

➡️ 불균형 상황이면 Accuracy보다 F1/PR-AUC/Recall이 중요!

➡️ 실제 업무가 “양성 놓치면 큰일”이면 B 선택이 타당.


🧱 7. 실전 체크리스트 ✅

  • 업무 목적 먼저: 정밀도 vs 재현율 어느 쪽이 더 중요한가?
  • 🎚 임계값 조정으로 F1/Recall/Precision 트레이드오프 최적화
  • ⚖ 불균형이면 PR-AUC / F1 / Recall 강조, 샘플링·가중치 활용
  • 🧮 다중분류macro/weighted/micro 평균방식 명시
  • 🧪 회귀는 MAE/RMSE/R² 조합 + 이상치/0 값 고려(RMSLE/sMAPE)
  • 🧪 군집·추천은 업무 적합 지표(NDCG/Silhouette 등) 선택
  • 🧯 확률 예측은 Calibration 확인(Brier/Calibration curve)

🌈 한 줄 요약

“평가지표는 문제·데이터·비용구조에 맞춰 고르는 전략 도구다.”

불균형=PR-AUC/F1, 확률=LogLoss/Calibration, 회귀=MAE/RMSE,

군집=Silhouette/ARI, 추천=NDCG/MAP