"매 classifier threshold를 올리면 precision↑ recall↓ — 두 metric 동시에 최대화 불가.". F1 / F-beta / PR-AUC 가 매 두 축의 통합 score. 매 imbalanced data (의료, fraud, anomaly)에서 ROC-AUC보다 매 PR-AUC가 honest.
매 핵심
매 정의
Precision = TP / (TP + FP) — "alarm 중 진짜 비율".
Recall = TP / (TP + FN) — "진짜 중 잡은 비율" (= sensitivity, TPR).
fromsklearn.metricsimportroc_auc_score,average_precision_score# y는 imbalanced (1% positive)print('ROC-AUC :',roc_auc_score(y_val,probs))# 매 inflatedprint('PR-AUC :',average_precision_score(y_val,probs))# 매 honest
Calibration before threshold tuning
fromsklearn.calibrationimportCalibratedClassifierCVcal=CalibratedClassifierCV(clf,method='isotonic',cv=5)cal.fit(X_train,y_train)probs_cal=cal.predict_proba(X_val)[:,1]# 매 calibrated probability — threshold 의미 직관적
언제: classifier deployment threshold 결정, imbalanced eval report, cost-sensitive decision.
언제 X: 매 ranking task에서 매 단일 threshold 무의미 — top-k metric 또는 nDCG 사용.
❌ 안티패턴
Default 0.5 threshold without tuning: 매 imbalanced 에서 매 useless. Validation tune 필수.
Tune threshold on test set: 매 leak. Validation 만.
ROC-AUC only on imbalanced: 매 inflated 결과 — PR-AUC 동반.
Ignore calibration before threshold: 매 uncalibrated probability 의 threshold 매 transferable X.
F1 maximize when costs are asymmetric: 매 cost ratio 있으면 F-beta 또는 explicit cost.
🧪 검증 / 중복
Verified (sklearn metrics docs precision_recall_curve, Saito & Rehmsmeier 2015 'PR vs ROC for imbalanced').
신뢰도 A.
🕓 Changelog
날짜
변경
2026-05-08
Phase 1
2026-05-10
Manual cleanup — PR tradeoff math + threshold tuning + PR vs ROC on imbalanced