본문 바로가기

IT/AI , 로봇

F1 지표가 이렇게 다양해?

 

1. 왜 여러 F1 집계 방식이 필요한가?

머신러닝 모델을 평가할 때, 단일 지표(예: 정확도)만 쓰면 “어느 한쪽으로 치우친 성능”을 놓칠 수 있습니다. 예를 들어, 희귀 이벤트를 놓치지 않는 게 중요한데 전체 데이터에서 차지하는 비율이 1%라면, 99%를 맞추는 모델도 정확도 99%를 얻지만 실제 중요한 이벤트는 다 놓치는 셈이죠. 이런 문제를 보완하려 F1 점수와 집계 방식을 다양화합니다.

 

 

잠깐... 배경 지식 Remind 시간, F1 점수란

머신러닝 분류 과제에서 단순 정확도(Accuracy)만으로는 모델의 진짜 성능을 놓치기 쉽습니다. 특히 클래스 간 데이터 분포가 불균형하거나, 잘못 예측했을 때 비용이 큰 경우에는 더더욱 그렇죠. 이를 보완하기 위해 Confusion Matrix(혼동 행렬) 개념과 그로부터 파생된 Precision(정밀도), Recall(재현율), 그리고 이 두 지표를 결합한 F1 점수를 사용합니다.


분류 모델의 예측 결과를 네 가지 항목으로 분류합니다.


 

  예측 Positive 예측 Negative
실제 Positive TP (True Positive) FN (False Negative)
실제 Negative FP (False Positive) TN (True Negative)

 

 
  • TP: 실제 Positive를 Positive로 맞춘 경우
  • FP: 실제 Negative를 잘못 Positive로 예측한 경우
  • FN: 실제 Positive를 놓치고 Negative로 예측한 경우
  • TN: 실제 Negative를 Negative로 맞춘 경우

 

정밀도: 모델이 Positive로 예측한 것 중 실제로 맞춘 비율
$\mathrm{Precision} = \frac{\mathrm{TP}}{\mathrm{TP} + \mathrm{FP}}$

재현율: 실제 Positive 중에서 모델이 맞춘 비율
$\mathrm{Recall} = \frac{\mathrm{TP}}{\mathrm{TP} + \mathrm{FN}}$

F1: Precision과 Recall의 조화평균
$F1 = 2 \times \frac{\mathrm{Precision} \times \mathrm{Recall}}{\mathrm{Precision} + \mathrm{Recall}}
= \frac{2\,\mathrm{TP}}{2\,\mathrm{TP} + \mathrm{FP} + \mathrm{FN}}$

 

 

 

2. Binary F1: 이진 분류 그 이상의 의미

  • 정의: Positive(관심 대상)와 Negative(나머지) 두 클래스만 놓고 Precision/Recall/F1을 계산
  • 활용:
    • 이상 탐지, 스팸 필터링, 의료 진단 등 “놓치면 안 될 한 가지 이벤트”를 잡아야 할 때 최우선 지표
    • Negative 클래스를 한 덩어리로 묶기 때문에, 모든 비관심 데이터를 ‘잡동사니’로 처리

포인트:

  • Positive Recall(민감도)을 최대화해야 할 때
  • False Positive(과잉 검출) 비용과 False Negative(미검출) 비용 간 절충이 필요할 때

Binary F1: 이진 분류(Positive vs. Negative)에 대한 F1
$\mathrm{F1}_{\mathrm{binary}}
= \frac{2\,\mathrm{TP}}{2\,\mathrm{TP} + \mathrm{FP} + \mathrm{FN}}$

 


3. Multi-class F1 집계 방식

3.1 Micro F1

  • 계산: 전 클래스의 TP/FP/FN를 합산한 뒤 한 번에 Precision/Recall/F1 계산
  • 특징:
    • 대량 샘플에 민감 → 다수 클래스 성능이 지배적
    • 빠르게 전체 모델 성능 추정 가능
  • 추천:
    • 클래스 분포가 비교적 균등하거나,
    • ‘모델의 전반적 분류’ 능력만 보고 싶을 때


Micro Precision: 모든 클래스의 TP/FP 합산 후 계산
$\mathrm{Precision}_{\mathrm{micro}}
= \frac{\sum_{c=1}^C \mathrm{TP}_c}{\sum_{c=1}^C (\mathrm{TP}_c + \mathrm{FP}_c)}$

Micro Recall: 모든 클래스의 TP/FN 합산 후 계산
$\mathrm{Recall}_{\mathrm{micro}}
= \frac{\sum_{c=1}^C \mathrm{TP}_c}{\sum_{c=1}^C (\mathrm{TP}_c + \mathrm{FN}_c)}$

Micro F1: Micro Precision과 Micro Recall의 조화평균
$\mathrm{F1}_{\mathrm{micro}}
= 2 \times \frac{\mathrm{Precision}_{\mathrm{micro}} \times \mathrm{Recall}_{\mathrm{micro}}}
                       {\mathrm{Precision}_{\mathrm{micro}} + \mathrm{Recall}_{\mathrm{micro}}}$



 

3.2 Macro F1

  • 계산: 각 클래스별 F1을 구해 단순 평균
  • 특징:
    • 클래스 수가 많아질수록 “희귀 클래스”의 중요도가 커짐
    • 불균형 데이터에서 모델이 모든 클래스를 고르게 학습했는지 확인
  • 추천:
    • 소수 클래스가 핵심인 리스크 관리,
    • “드물지만 중요한” 이벤트가 다수일 때

 

클래스 c에 대한 F1: 해당 클래스의 Precision/Recall로 계산
$\mathrm{F1}_c
= 2 \times \frac{\mathrm{TP}_c}{2\,\mathrm{TP}_c + \mathrm{FP}_c + \mathrm{FN}_c}$

 

 

Macro F1: 모든 클래스 F1의 단순 평균
$\mathrm{F1}_{\mathrm{macro}}
= \frac{1}{C}\sum_{c=1}^{C} \mathrm{F1}_c$

 

 

3.3 Weighted F1

  • 계산: 클래스별 F1에 클래스별 샘플 비중(지원도)을 곱해 합산
  • 특징:
    • Micro와 Macro의 절충점
    • 과도한 소수 클래스 과대평가를 방지하면서,
      중요한 소수 클래스도 일정 부분 반영
  • 추천:
    • 클래스별 중요도와 빈도 모두 고려해야 할 때,
    • 비즈니스 실제 데이터 분포를 평가에 반영하고 싶을 때

Weighted F1: 클래스별 F1에 샘플 수 비중을 곱해 합산
$\mathrm{F1}_{\mathrm{weighted}}
= \sum_{c=1}^{C} \frac{N_c}{N} \times \mathrm{F1}_c,\quad
N = \sum_{c=1}^C N_c$

 


4. 선택 가이드라인

  1. 비즈니스 비용 구조 파악
    • False Negative(놓친 경우)의 비용이 크다면 → Binary F1 혹은 Macro F1(소수 클래스 중점)
    • False Positive(과잉 탐지) 비용이 더 크다면 → Precision 우선 지표 조정
  2. 데이터 분포 분석
    • 클래스 비율이 1:1:1 정도면 → Micro F1로 전반적 성능 체크
    • 1000:10:1 같이 극단적 불균형이면 → Macro F1 또는 Weighted F1
  3. 모델 개선 방향 설정
    • Macro F1이 낮다면 → “어떤 클래스에 약한지” 개별 F1 확인 후 데이터 수집·증강
    • Weighted F1과 Micro F1 차이가 크다면 → “빈도가 높은 클래스 vs 낮은 클래스” 문제 진단
  4. 종합 평가지표 설계
    • 한 가지 지표만으로 결론 내리기보다,
      • Binary F1으로 핵심 타깃 검출력,
      • Macro/Weighted F1으로 전체·소수 클래스 성능
        두 축을 함께 모니터링하면 모델 리스크를 최소화

5. 실전 예시

의료 영상 이상 탐지

  • Positive(병변) 비율 2% → Binary F1로 놓치지 않는지, Macro F1으로
    “각 질환별 병변 분포”를 고르게 잘 잡는지 모두 확인

고객 상담 분류

  • ‘긴급 문의’ 5%, ‘일반 불만’ 40%, ‘기타 문의’ 55%
  • 긴급 문의 놓치면 치명적 → Binary F1(긴급 vs 나머지)
  • 다중 카테고리 분류 품질 → Weighted F1

음성 명령 인식

  • 10개 명령이 균등 분포 → Micro F1 혹은 단순 Accuracy

결론

  • Binary F1: 단일 핵심 이벤트 검출에 집중
  • Micro F1: 전체 모델 분류 퍼포먼스 지표
  • Macro F1: 모든 클래스 공평성 확보
  • Weighted F1: 클래스 비중 반영한 균형 평가

단일 지표로 ‘보이는 성능 강화’가 아니라, 다중 지표를 통해 다양한 리스크와 편향을 함께 진단하는 것이 전문적 평가 전략입니다.