F1 Score

f1 score 는 Recallprecision 에 대한 조화 평균 (harmonic mean) 점수다.

F1 Score 는 0.0 ~ 1.0 사이의 값을 가지며 높을수록 좋다.

B) F1 Score 를 사용하는 이유

Recall 과 precision 의 불균형을 해결하기 위해 조화 평균 값인 F1 Score 를 사용한다.

어느 이진 분류 모델이 항상 모든 데이터를 positive 로만 분류하는 모델이라 가정해보자. 이 경우, Recall 은 의 값을 가지겠지만, precision 은 에 가까울 수 있다.

C) 기하학적으로 해석하는 F1 Score

Crossed ladders. h is half the harmonic mean of A and B| 500
여기서 A 는 Recall 그리고 B 는 precision 이며, h 는 A 와 B 의 harmonic mean 인 F1 Score 이다.

  • 만약 A 또는 B 한쪽이 너무 높거나 낮을 경우, h 는 감소한다.
  • 반대로, 두 값이 모두 적절히 높을 때, h 는 증가한다.

D) For Multi-class Classification

다중 클래스 classification 문제에서는 각 클래스에 대해서 One-vs-Rest(OvR) F1 score 를 계산하는 것이 중요하다. 즉, 각 class 에 대하여 TP(True Positive), FP, FN 을 계산하여 precision, recall 을 구하고, 최종적으로 F1 Score 를 계산한다.

각 클래스마다 F1 score 를 구하기 보다는 이 score 를 평균내어 하나의 숫자로 표기하는게 전반적인 performance 를 확인하기 더 편하다. 평균을 내는 방식에는 총 세가지 방식이 존재한다.

D.1) (1) Macro Average

가장 단순 방식으로, 모든 클래스 당 F1-score 의 평균을 의미한다.

D.2) (2) Weighted Average

각 class 의 support 값에 따라 F1-score 평균 계산 시 가중치를 적용하는 방식이다. 이는 클래스 불균형에 대한 평가 방식을 좀 더 공정히하기 위해 고안한 방식이다.

D.3) (3) Micro Average

Micro 평균 방식은 F1-score 를 계산하기 위한 TP, FN, FP 를 각각 class 마다 합산하고, 합산된 결과를 활용하여 F1-score 를 계산하는 방식이다.

결과적으로 micro 평균 방식은 전체 관측 데이터 중 올바르게 분류된 관측 데이터의 비율을 계산하는 것과 동일하다. 즉, 전반적인 accuracy 를 고려하는 것과 같다.
추가적으로 micro-recall 또는 micro-precision 방식도 micro F1-score 와 동일한 값을 가지게 된다.

간단히 정리하면 이렇다.

D.4) 어느 방식이 가장 좋은가?

만약 분류하려는 class 가 모두 중요하고, 데이터셋의 클래스가 불균형하다면 macro average 가 무난한 선택이 될 것이다.

만약 분류하려는 class 의 중요도가 서로 다르고, 데이터셋의 클래스가 불균형하다면 weighted 방식이 좋다.

마지막으로 데이터셋의 클래스가 밸런스가 맞고 전반적인 performance 를 쉽게 이해할 수 있는 metric 을 고려한다면 micro average 방식이 좋다.

E) Fbeta-Measure

recall 또는 precision 에 더 가중치를 주는 방식. false positive 또는 false negative 에 더 많은 가중치를 주기 위해 사용한다.

위 식의 는 recall 에 주는 가중치를 의미한다. 낮을수록 recall 에 가중치를 낮게 준다는 의미.

  • F0.5-Measure (beta=0.5): precision > recall
  • F1-Measure (beta=1.0): precision = recall (F1-score)
  • F2-Measure (beta=2.0): precision < recall

F) Related

G) References