요약

병을 가려내는 검사가 얼마나 좋은지 하나의 숫자로 말하기는 어렵다. 전체 중 맞힌 비율(정확도)은 환자가 드물면 “모두 건강하다”고만 해도 높게 나온다. 그래서 “양성이라 한 것 중 진짜 양성의 비율”(정밀도)과 “진짜 양성 중 찾아낸 비율”(재현율)을 따로 보고, 둘을 함께 보려면 F1을 쓴다. 어떤 실수가 더 비싼지에 따라 알맞은 지표가 달라진다.

예시로 보기

환자 1,000명 중 병이 있는 사람이 10명이다. 모두 “건강하다”고 답하는 모델은 990명을 맞혀 정확도 99%다. 하지만 환자를 한 명도 찾지 못한다1.

다른 모델의 결과를 네 칸으로 센다1. 이 표를 혼동 행렬이라 부른다.

  모델: 양성 모델: 음성
실제 양성 8 (참 양성, TP) 2 (거짓 음성, FN)
실제 음성 40 (거짓 양성, FP) 950 (참 음성, TN)
  • 정확도 \(\frac{8 + 950}{1000} = 95.8\%\). 앞의 “모두 건강” 모델보다 낮다.
  • 재현율 \(\frac{8}{8 + 2} = 80\%\). 환자 10명 중 8명을 찾았다.
  • 정밀도 \(\frac{8}{8 + 40} = 16.7\%\). “양성”이라 한 48명 중 진짜 환자는 8명이다.

환자를 놓치는 것(FN)이 비싸면 재현율을, 건강한 사람을 괜히 재검사하는 것(FP)이 비싸면 정밀도를 본다.

검증: 정확도 99%와 재현율 0, 위 혼동 행렬의 네 지표, 조화평균의 범위, 카드 C2 — 19_classification-metrics_verify.py

정의

양성(+)과 음성(−)을 가르는 분류에서, 실제 값과 예측의 조합을 넷으로 센다.

  • TP(참 양성): 양성을 양성으로 맞힘
  • FN(거짓 음성): 양성을 음성으로 틀림. 제2종 오류
  • FP(거짓 양성): 음성을 양성으로 틀림. 제1종 오류
  • TN(참 음성): 음성을 음성으로 맞힘

이 네 수로 지표 네 가지를 만든다.

지표 식 재는 것 쓸모 있을 때 한계
정확도 \(\frac{TP + TN}{TP + TN + FP + FN}\) 전체 정답률 부류 비율이 고를 때 불균형 자료에서 속인다
정밀도 \(\frac{TP}{TP + FP}\) 양성 예측을 믿을 수 있나 거짓 양성이 비쌀 때 거짓 음성을 무시한다
재현율 \(\frac{TP}{TP + FN}\) 양성을 찾아내는 능력 양성을 놓치면 비쌀 때 거짓 양성을 무시한다
F1 \(\frac{2 \cdot \text{정밀도} \cdot \text{재현율}}{\text{정밀도} + \text{재현율}}\) 정밀도와 재현율의 균형 불균형 자료, 둘을 함께 따질 때 참 음성을 무시한다

F1은 두 값의 조화평균이라 작은 쪽에 끌린다. 위 예는 정밀도 16.7%, 재현율 80%로 산술평균은 48%지만 F1은 27.6%다1.

그림

재현율을 0.8에 두고 정밀도만 바꿨다. 정밀도가 낮을수록 F1(파란 선)은 산술평균(회색 점선)보다 훨씬 아래, 작은 쪽인 정밀도 쪽으로 끌려 내려간다. 두 값이 0.8로 같을 때만 둘이 만난다2.

연결

  • 평가 방법(홀드아웃, 교차검증, 부트스트랩): 과적합과 교차검증의 과목별 관점
  • 두 모델의 차이가 우연인지 가리기: 가설검정과 p값의 과목별 관점(짝지은 t-검정). 제1종·제2종 오류도 같은 말이다.
  • 불균형 자료에서 시험 집합의 비율 맞추기: 층화 추출

확인 문제

C1 정밀도, 재현율, F1을 TP, FP, FN으로 쓰라.

답: 정밀도 \(\frac{TP}{TP + FP}\), 재현율 \(\frac{TP}{TP + FN}\), F1 \(= \frac{2PR}{P + R}\)(\(P\) 정밀도, \(R\) 재현율).

C2 TP 30, FP 10, FN 20, TN 940일 때 정밀도, 재현율, F1을 구하라.

답: 정밀도 \(\frac{30}{40} = 75\%\), 재현율 \(\frac{30}{50} = 60\%\), F1 \(= \frac{2 \times 0.75 \times 0.6}{1.35} \approx 66.7\%\).

C3 다음 경우 정밀도와 재현율 중 무엇을 더 중시해야 하나? ① 암 검진의 1차 선별 ② 스팸 필터(정상 메일을 스팸함에 넣으면 큰일) ③ 신용카드 사기 탐지(사기를 놓치면 큰 손해)

답: ① 재현율. 환자를 놓치면 안 되고, 거짓 양성은 정밀 검사로 다시 걸러진다. ② 정밀도. 스팸이라 한 것이 정말 스팸이어야 한다. ③ 재현율. 사기를 놓치는 비용이 정상 거래를 확인하는 비용보다 크다.

  1. 검증 코드로 계산했다. ↩ ↩2 ↩3

  2. 19_classification-metrics_plot.py로 그렸고, 정밀도 16.7%·재현율 80%에서 F1 0.276, 산술평균 0.483, 그리고 F1이 늘 작은 값 이상·산술평균 이하임을 같은 코드로 확인했다. ↩