[AI] Macro vs. Micro metrics

JAsmine_log·2025년 9월 30일
0

Macro vs Micro

Macro, macro는 기본적으로 실제 대비 예측을 어떻게 헀는지 평가를 위한 지표들로,

  • Macro는 라벨끼리 모아서 성능을 평가한 후, n개의 라벨이 얻은 예측값(T or P)를 계산 라벨별 메트릭(P, R, F1, A)을 평균 낸 것
  • Micro는 라벨을 구분하지 않고 전체 예측한 값(T or P)를 모두 모아서 메트릭(P, R, F1, A)로 계산한 것
  • Label-wise 평가는 라벨로만 예측한 값에 대해 메트릭(P, R, F1,A)를 계산한것

Micro Metrics (마이크로 메트릭)

  • 정의: 모든 토큰을 하나로 합쳐서 계산
  • 토큰 예시:
문장: "John Smith lives in New York"
토큰: ["John", "Smith", "lives", "in", "New", "York"]
라벨: ["B-PERSON", "I-PERSON", "O", "O", "B-LOCATION", "I-LOCATION"]
예측: ["B-PERSON", "I-PERSON", "O", "O", "B-LOCATION", "I-LOCATION"]
실제: ["B-PERSON", "I-PERSON", "O", "O", "B-LOCATION", "I-LOCATION"]

→ 모든 엔티티 토큰(B-PERSON, I-PERSON, B-LOCATION, I-LOCATION)을 합쳐서 전체적으로 TP/FP/FN을 계산
  • 계산 방식: 전체 TP, FP, FN을 합산 후 계산
  • 특징:
    • 빈도가 높은 클래스(예: O)의 영향이 큼
    • 전체적인 모델 성능을 반영
    • 데이터 불균형에 민감
  • 용도: 전체적인 모델 성능 평가
  • 공식:
Micro Precision = 전체 TP / (전체 TP + 전체 FP)
Micro Recall = 전체 TP / (전체 TP + 전체 FN)
Micro F1 = 2 × (Micro Precision × Micro Recall) / (Micro Precision + Micro Recall)

Macro Metrics (매크로 메트릭)

  • 정의: 각 클래스별로 계산한 후 평균

  • 토큰 예시:

    문장: "John Smith lives in New York"
    토큰: ["John", "Smith", "lives", "in", "New", "York"]
    라벨: ["B-PERSON", "I-PERSON", "O", "O", "B-LOCATION", "I-LOCATION"]
    
    예측: ["B-PERSON", "I-PERSON", "O", "O", "B-LOCATION", "I-LOCATION"]
    실제: ["B-PERSON", "I-PERSON", "O", "O", "B-LOCATION", "I-LOCATION"]
    
    → 각 라벨별로 개별 계산:
      B-PERSON: TP=1, FP=0, FN=0 → F1=1.0
      I-PERSON: TP=1, FP=0, FN=0 → F1=1.0  
      B-LOCATION: TP=1, FP=0, FN=0 → F1=1.0
      I-LOCATION: TP=1, FP=0, FN=0 → F1=1.0
      O: TP=2, FP=0, FN=0 → F1=1.0
      
      → Macro F1 = (1.0 + 1.0 + 1.0 + 1.0 + 1.0) / 5 = 1.0
  • 계산 방식: 클래스별 Precision/Recall/F1의 평균

  • 특징:

    • 모든 클래스에 동일한 가중치
    • 클래스 불균형에 덜 민감
    • 소수 클래스의 성능도 동일하게 반영
  • 용도: 클래스 불균형 상황에서 공정한 평가

  • 공식:

    Macro Precision = (P1 + P2 + ... + Pn) / n
    Macro Recall = (R1 + R2 + ... + Rn) / n
    Macro F1 = (F1_1 + F1_2 + ... + F1_n) / n
profile
Everyday Research & Development

0개의 댓글