평가 지표·연습 문제

정밀도 & 재현율

문제 설명PROBLEM

preview

정밀도(Precision) & 재현율(Recall)

혼동행렬(24번) 에서 파생되는 두 핵심 지표. 특히 불균형 데이터 (예: 사기 탐지, 암 진단) 에서 accuracy-v1 만 보면 안 되는 이유.

Precision=TPTP+FPRecall=TPTP+FN\text{Precision} = \frac{TP}{TP + FP} \qquad \text{Recall} = \frac{TP}{TP + FN}

직관

  • Precision — "양성으로 예측한 것 중 실제 양성의 비율" → 잘못된 경보(FP) 가 얼마나 적은가.
  • Recall — "실제 양성을 얼마나 놓치지 않고 잡았는가" → 놓친 것(FN) 이 얼마나 적은가.

언제 어떤 게 중요?

상황우선 지표
스팸 분류 (FP는 좋은 메일이 차단됨)Precision
암 진단 (FN은 놓친 환자)Recall
균형 중요F1 (둘의 조화평균)

과제

함수 precision_recall(y_pred, y_true) 를 완성하세요.

  • 이진 분류: 레이블 0/1.
  • 반환: (precision, recall)float.
  • TP+FP == 0 또는 TP+FN == 0 인 경우 해당 지표를 0.0 으로 방어.

테스트 케이스

#이름y_predy_trueprecisionrecall
1완벽[1,0,1,0][1,0,1,0]1.01.0
2전부 양성 예측[1,1,1,1][1,0,1,0]0.51.0
3전부 음성 예측[0,0,0,0][1,0,1,0]0.00.0
4혼합[1,1,0,0,1][1,0,1,0,1]0.6670.667
5sklearn 일치무작위 데이터matchmatch
개념 노트와 실수 포인트

평가 지표

  • ⚠️ 정확도는 클래스 불균형에 약함(99% 음성이면 다 음성 찍어도 99%).
  • 정밀도(예측한 양성 중 진짜) vs 재현율(실제 양성 중 잡은 것) 트레이드오프, F1=조화평균.