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 정답 박스”의 공간 일치를 먼저 정의해야 한다.
- IoU 임계값 설정: 예) IoU ≥ 0.5면 TP, 아니면 FP.
- 매칭 규칙: 정답 한 개에 한 예측만 TP(나머지는 FP). 보통 Hungarian 매칭/최대 IoU 그리디 등.
- Confidence 임계값: 낮추면 Recall↑, Precision↓ 경향. 임계값을 스윕하면 PR 곡선과 각 점의 F1을 얻는다.
- 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 등 Fβ로 가중.
부록: 용어 요약
- TP: 맞게 검출/분류한 양성
- FP: 틀리게 검출/분류한 양성(오탐)
- FN: 놓친 양성(미검출/누락)
- TN: 맞게 거부한 음성
- IoU: 박스 겹침 정도(교집합/합집합)
- PR 곡선: 임계값 변화에 따른 P–R 관계
- mAP: 탐지에서 클래스별 AP 평균(평균 정밀도)
답글 남기기