calibration·imbalance·uncertainty
이 토픽을 마치면
discrimination과 calibration을 구분하고, 불균형 자료에서 metric 선택의 의미를 설명할 수 있습니다. 예측확률 하나를 확정적 판단으로 바꾸지 않고 데이터 분할과 불확실성을 함께 보고합니다.
맞히는 것과 확률이 맞는 것
discrimination은 양성·음성을 얼마나 잘 순서화하는지에 관한 질문입니다. calibration은 예측확률 0.7인 사례들이 장기적으로 약 70%의 사건을 보이는지에 관한 질문입니다. 두 모델이 비슷한 AUC를 가져도 calibration이 다를 수 있습니다.
imbalance
양성 비율이 낮으면 다수 클래스를 예측하는 모델도 높은 accuracy를 얻을 수 있습니다. precision·recall·average precision·특이도 등은 서로 다른 오류를 강조합니다. 어떤 오류가 중요한지와 threshold의 사용 목적을 사전에 적습니다.
calibration API와 평가
scikit-learn의 calibration 도구는 예측확률과 관측 결과의 관계를 점검하는 API를 제공합니다. calibration curve와 metric을 train/test 분리 안에서 계산하고, calibration 과정 자체가 test 정보에 fit되지 않도록 합니다.
불확실성의 여러 원천
예측확률 하나에는 표본 선택, 모델 파라미터, feature 측정, site·time 변화의 불확실성이 모두 반영되지 않을 수 있습니다. cross-validation fold별 성능, bootstrap 평가, 외부 validation처럼 목적에 맞는 반복 평가를 사용해 변동을 기록할 수 있습니다.
class imbalance가 심하면 calibration bin마다 관측 수가 적을 수 있습니다. 곡선의 모양만 보고 과도하게 해석하지 않고 bin별 표본 수와 confidence interval 또는 반복 변동을 함께 확인합니다.
threshold는 의사결정 규칙이다
확률을 0과 1의 분류로 바꾸는 threshold는 모델의 고정된 속성이 아니라 오류 비용과 사용 목적에 따른 규칙입니다. test set에서 가장 좋은 threshold를 고른 뒤 같은 test 성능을 최종 결과로 보고하지 않습니다.
연구 질문으로 돌아가 해석하기
확률이 잘 보정됐다는 것은 예측확률의 신뢰도에 관한 말이지, 모델이 인과를 설명하거나 외부 집단에서 동일하게 작동한다는 뜻은 아닙니다. site·time·group shift와 불확실성을 함께 봅니다.
자주 생기는 실패
- AUC가 높으면 calibration도 좋다고 쓰지 않습니다.
- imbalance에서 accuracy만 보고하지 않습니다.
- calibration을 전체 데이터에 먼저 fit하지 않습니다.
- 예측확률을 사건의 확정으로 번역하지 않습니다.
핵심 정리
- discrimination과 calibration은 다른 평가 질문입니다.
- imbalance에서는 metric과 threshold의 목적을 명시해야 합니다.
- calibration도 split과 leakage 규칙을 따릅니다.
다음 토픽으로
다음 편에서는 lock·seed·hash·manifest를 갖춘 재현 가능한 분석 패키지를 구성합니다.
참고 자료
- scikit-learn calibration: https://scikit-learn.org/stable/modules/calibration.html
- scikit-learn metrics: https://scikit-learn.org/stable/modules/model_evaluation.html
- GroupKFold: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GroupKFold.html
본 편의 평가 구조와 예시는 BioStatPy가 독립적으로 작성했습니다.