Skip to content

F1 Score

날짜: 2026-04-24
작성자: 최원재
프로젝트: ai-nde-reliability


목적

진행 내용

F1 score는 precision과 recall의 조화평균으로, 분류 모델의 성능을 하나의 숫자로 요약하는 지표입니다.

정의

F1=2precisionrecallprecision+recall=21precision+1recall

여기서:

  • Precision (정밀도) = TP / (TP + FP): "양성이라고 예측한 것 중 진짜 양성의 비율"
  • Recall (재현율) = TP / (TP + FN): "실제 양성 중 모델이 잡아낸 비율"

왜 산술평균이 아니라 조화평균인가

이게 F1의 핵심입니다. 조화평균은 두 값 중 작은 쪽에 끌려가는 성질이 있어요. 예를 들어:

  • precision = 1.0, recall = 0.0 → 산술평균 0.5, F1 = 0
  • precision = 0.9, recall = 0.1 → 산술평균 0.5, F1 ≈ 0.18
  • precision = 0.5, recall = 0.5 → 산술평균 0.5, F1 = 0.5

즉 F1이 높으려면 precision과 recall이 둘 다 높아야 합니다. 한쪽만 잘해서는 점수가 낮아요. 이게 "균형잡힌 성능"을 강제하는 효과를 냅니다.

왜 필요한가 — accuracy의 한계

Accuracy(정확도)만 쓰면 불균형 데이터에서 망가집니다. 암 진단 모델에서 암 환자가 1%뿐이라면, "전부 음성"이라고만 답해도 accuracy 99%가 나오죠. 하지만 정작 잡아내야 할 암 환자는 한 명도 못 잡습니다 (recall = 0).

F1은 이런 상황에서 진짜 성능을 드러냅니다. 위 모델의 F1은 0이거든요.

한계와 주의점

F1이 만능은 아닙니다. 몇 가지 함정이 있어요.

True Negative를 무시합니다. 공식에 TN이 안 들어가요. 양성 클래스 탐지가 중요한 문제(질병 진단, 사기 탐지, 정보 검색)에 적합하지만, 음성 판정도 똑같이 중요한 문제에는 부적절할 수 있습니다.

Precision과 recall에 동일한 가중치를 줍니다. 실제로는 둘의 중요도가 다른 경우가 많아요. 암 진단은 recall이 더 중요하고(놓치면 안 됨), 스팸 필터는 precision이 더 중요합니다(정상 메일을 스팸으로 분류하면 곤란). 이때는 일반화된 Fβ score를 씁니다:

Fβ=(1+β2)precisionrecallβ2precision+recall

β>1이면 recall을 중시(F2), β<1이면 precision을 중시(F0.5)합니다.

정리

F1 score는 "precision과 recall을 모두 잘하는지"를 한 숫자로 보여주는 지표입니다. 특히 클래스가 불균형하고 양성 탐지가 중요한 상황에서 accuracy보다 훨씬 정직한 평가를 해줍니다. 다만 문제 상황에 따라 precision/recall을 따로 보거나 Fβ를 쓰는 게 더 적절할 때도 있어요.

TODO

참고

NDT Research Lab - KRISS