F1 Score 가이드 (YOLO·객체탐지 포함)

TL;DR
F1은 **정밀도(Precision)**와 **재현율(Recall)**의 조화평균이다. 분류든 객체탐지든 TP/FP/FN으로 성능을 계산할 수 있는 문제라면 같은 개념과 수식이 적용된다. 다만 객체탐지IoU 임계값·confidence 임계값·매칭 규칙을 먼저 정해야 하며, 관행적으로 PR 곡선·mAP과 함께 보고한다.


1) 정의

  • Precision(정밀도): 예측을 양성이라 한 것 중 진짜 양성의 비율
    ( \displaystyle P=\frac{TP}{TP+FP} )
  • Recall(재현율): 실제 양성 중에서 맞힌 비율
    ( \displaystyle R=\frac{TP}{TP+FN} )
  • F1(조화평균):
    ( \displaystyle F_1=\frac{2PR}{P+R}=\frac{2,TP}{2,TP+FP+FN} )

특징: **TN(진짜 음성)**은 식에 들어가지 않기 때문에, 클래스 불균형에서 단순 Accuracy보다 덜 왜곡되지만, 반대로 TN이 중요한 문제에선 한계가 있다.

Fβ (가중 F-measure)

재현율을 더 중요하게 보려면 β>1, 정밀도를 더 보려면 β<1:
[
\textstyle F_\beta=(1+\beta^2)\frac{PR}{\beta^2P+R}
]

  • 예: F2는 재현율에 더 큰 가중(의료·안전 영역 등 “놓치면 안 되는” 문제).

2) 객체탐지(YOLO 등)에서의 F1

객체탐지는 “예측 박스 vs 정답 박스”의 공간 일치를 먼저 정의해야 한다.

  1. IoU 임계값 설정: 예) IoU ≥ 0.5면 TP, 아니면 FP.
  2. 매칭 규칙: 정답 한 개에 한 예측만 TP(나머지는 FP). 보통 Hungarian 매칭/최대 IoU 그리디 등.
  3. Confidence 임계값: 낮추면 Recall↑, Precision↓ 경향. 임계값을 스윕하면 PR 곡선과 각 점의 F1을 얻는다.
  4. NMS 설정: 중복 박스 억제의 임계값이 Precision/Recall에 영향.

보고 관행

  • F1@IoU=0.5 또는 F1@Best-conf(특정 IoU에서 F1이 최대인 지점)
  • mAP@0.5 또는 mAP@0.5:0.95(COCO 방식)과 함께 제시
  • 클래스별 F1과 마이크로/매크로 집계 동시 보고 권장

3) 다른 지표와의 관계

  • Jaccard/IoU와의 변환(이진 분류 관점):
    ( \displaystyle F_1=\frac{2J}{1+J} ) (단조 관계 → 순위 비교 결과 일치)
  • Accuracy: 불균형 자료에서 과대평가 가능(다수 클래스에 치우침).
  • PR-AUC: 임계값 전역의 성능 요약(희귀 양성 문제에 적합).
  • ROC-AUC: 클래스 불균형에서 해석 주의(특히 양성 희귀 시).
  • MCC: ((TP,FP,FN,TN)) 모두 사용, 상관계수 기반이라 전반적 균형을 잘 반영.

4) 멀티클래스에서의 F1 집계

  • Micro-F1: 전체 TP/FP/FN을 합산 후 계산(샘플 수가 많은 클래스 가중).
  • Macro-F1: 클래스별 F1을 단순 평균(클래스 균등 가중).
  • Weighted-F1: 각 클래스 F1에 **지원도(샘플 수)**로 가중 평균.

권장: Macro + Micro를 함께 보고(클래스 불균형 여부 파악).


5) 보고(Report) 체크리스트

  • 데이터셋/분할: 학습·검증·평가 분할, 버전/라벨 정책 명시
  • 매칭 규칙: IoU 임계값(예: 0.5 / 0.5:0.95), 매칭 알고리즘, NMS 임계값
  • 임계값 정책: 고정 conf(예: 0.25) vs Best-F1 지점
  • 집계 방식: per-class, micro/macro/weighted F1 동시 제시
  • 추가 지표: PR 곡선, PR-AUC, mAP(탐지), MCC(분류) 병행
  • 재현성 자료: 코드 해시, 모델/데이터 버전, 랜덤 시드, 환경(SW/HW)

예시 표기

  • “F1@IoU=0.5 (micro) = 0.71 @ conf=0.31, NMS=0.6; mAP@0.5=0.78; Dataset: COCO val2017; seed=42; commit abc123.”

6) 빠른 예제(이진 분류/탐지 한 클래스 관점)

  • TP=80, FP=20, FN=40 →
    (P=0.80,\ R=0.67,\ F_1=\frac{2\cdot0.80\cdot0.67}{0.80+0.67}\approx0.73)

같은 모델이라도 conf 임계값을 조정하면 P/R/F1이 달라진다 → PR 곡선에서 업무 요구(오탐 vs 누락 비용)에 맞는 지점 선택.


7) 왜 이렇게 널리 쓰이나?

  • 한 숫자정밀도–재현율의 균형을 보여줘 모델 비교가 간단
  • 클래스 불균형에서 Accuracy보다 덜 왜곡
  • 임계값 최적화(예: Best-F1)에 직관적

단, TN을 무시하므로 음성 측면 리스크가 중요한 문제라면 MCC 등 보완 지표와 함께 쓰는 것을 권장.


8) 간단 역사(“누가 만들었나?”)

  • 1940s: 생태·언어학 분야의 **Dice(1945), Sørensen(1948)**가 집합 유사도 계수(Sørensen–Dice) 제안 — F1과 동일 수식.
  • 1979: 정보검색(IR) 분야의 van Rijsbergen가 **F-measure(Fβ)**를 체계화 — 오늘날 F1 명칭과 사용 관행이 여기서 정착.

9) 실무 권장안(요약)

  • 탐지: F1@IoU=0.5, mAP@0.5:0.95, PR 곡선함께.
  • 분류: Macro-F1 + Micro-F1 동시 보고, MCC 보완.
  • 리포트에 임계값·매칭·NMS·집계 방식을 반드시 명시(재현성).
  • 업무 요구가 “놓치면 비용 큼”이면 F2로 가중.

부록: 용어 요약

  • TP: 맞게 검출/분류한 양성
  • FP: 틀리게 검출/분류한 양성(오탐)
  • FN: 놓친 양성(미검출/누락)
  • TN: 맞게 거부한 음성
  • IoU: 박스 겹침 정도(교집합/합집합)
  • PR 곡선: 임계값 변화에 따른 P–R 관계
  • mAP: 탐지에서 클래스별 AP 평균(평균 정밀도)

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다