logo

데이터과학에서 F1 스코어란? 📂데이터과학

데이터과학에서 F1 스코어란?

정의

양성positive $P$ 와 음성negative $N$ 을 구분하는 분류문제에서 양성과 음성을 판정하는 모델이 주어져 있다고 하자. 양을 양으로 판정한 수를 참양성true Positive $TP$, 음을 음으로 판정한 수를 참음성true Negative $TN$, 양을 음으로 잘못 판정한 수를 위음성false Negative $FN$, 음을 양으로 잘못 판정한 수를 위양성false Positive $FP$ 라 하자.

수식적인 정의

다음의 수치를 모델의 정밀도precision라 한다. $$ \textrm{Precision} = {{ TP } \over { TP + FP }} $$ 다음의 수치를 모델의 재현도recall라 한다. $$ \textrm{Recall} = {{ TP } \over { P }} $$ 정밀도와 재현도의 조화평균을 모델의 F1 스코어f1 Score라 한다. $$ F_{1} := {{ 2 } \over { \textrm{Precision}^{-1} + \textrm{Recall}^{-1} }} $$

설명

$F_{1}$ 스코어는 정밀도와 재현도가 가지는 결점들을 보완하기 위한 척도로써, 둘 중 하나가 경시될 때 더 큰 패널티를 주어서 모델이 종합적으로 뛰어난지 평가한다. 특히 데이터의 라벨링, 즉 양성과 음성이 심하게 불균형한 이진분류 문제에서는 모델을 평가하기 위해 가장 보편적으로 쓰이는 지표다.

직관적인 의미

본질적으로 $F_{1}$ 스코어는 그 자체로 직관적인 해석을 주지 않는다. 뜬금없이 조화평균이 나오는 것도 그렇지만, 어디 널려있는 설명들을 봐도 반드시 정밀도와 재현도를 먼저 언급하고 그 다음에 $F_{1}$ 스코어로 정리한다.

정밀도가 ‘양성을 확실하게 맞히는 힘’을 나타내고 재현도가 ‘양성을 빠짐없이 찾는 힘’을 나타낸다면, $F_{1}$ 스코어는 ‘정밀도와 재현도 사이에서 균형을 잃지 않은 본질적 힘’을 나타낸다고 말할 수 있다. 수식적으로 반드시 보장되는 건 아니지만, 경험적으로 정밀도와 재현도는 트레이드 오프trade off의 관계에 있으며 마음 먹기에 따라서는 하나의 지표를 포기하고 나머지 하나를 극단적으로 과대평가할 가능성이 있다. 애초에 정확도에 문제가 있기 때문에 정밀도나 재현도를 사용하는 상황이라면 그러한 불균형에 대해 알고 있어야 한다.

수식적인 해석

$F_{1}$ 스코어에 대한 설명은 굉장히 많고, 그 중에서 조화평균 자체의 기하적인 성질로 설명하는 방법도 좋기는 하다. 하지만 개인적으로 그런 설명들은 이미 $F_{1}$ 무엇인지 알고 있을 때 ‘왜 하필 그렇게 정의하는지’를 더 명료하게 이해시켜주는 설명이지 처음 접하는 입장에서 ‘$F_{1}$ 스코어가 구체적으로 어떻게 해석되는지’를 쉽게 알려주지는 못한다고 본다. 무식하고 단순하게 제일 기본적인 ‘수치’부터 생각해보자.

우선 정밀도는 ‘양성이라고 찍은 것 중 실제 양성인 것’이므로 $0$부터 $1$ 사이의 값을 가지고, 재현도 역시 ‘실제 양성 중 양성이라고 찍은 것’이므로 $0$부터 $1$ 사이의 값을 가진다. 다시 말해, 정밀도와 재현도는 다음과 같은 부등식들을 만족시킨다. $$ \begin{align*} 1 \le & {{ 1 } \over { \textrm{Precision} }} \\ 1 \le & {{ 1 } \over { \textrm{Recall} }} \\ 2 \le & \textrm{Precision}^{-1} + \textrm{Recall}^{-1} \end{align*} \\ \implies F_{1} = {{ 2 } \over { \textrm{Precision}^{-1} + \textrm{Recall}^{-1} }} \le 1 $$ 즉 $F_{1}$ 역시 $1$ 일 때 가장 큰 값을 가지고, 등식이 만족하는 경우는 정밀도와 재현도가 모두 $1$ 인 상황 뿐이다. 두 지표 중 하나라도 $0$ 에 수렴하면 분모는 발산하므로 $F_{1}$ 의 인피멈은 $0$ 이고, 조금 더 명료하게 적자면 $$ 0 < F_{1} \le 1 $$ 와 같이 $0$부터 $1$ 사이로 정규화된normalized 수치고 $1 = 100\%$ 에 가까울 수록 좋은 수치임을 알 수 있다. 물론 $F_{1}$ 이 $0$ 에 수렴하는 것은 두 지표가 자유롭고 아주 극단적으로 주어질 때를 말하는 것이고, 실제로는 다음의 정리에 의해 둘 중 더 작은 것에 가까워질 뿐이다.

조화평균의 상한과 하한: $a,b > 0$ 의 조화평균은 $a$ 와 $b$ 사이의 값을 가진다. $\max$ 와 $\min$ 은 최대값과 최소값을 의미한다. $$ \min (a,b) \le H (a,b) \le \max (a,b) $$

한편 정밀도와 재현도는 보통 트레이드 오프의 관계에 있다고 했다. 이를 단순히 어떤 $c \in (0,2)$ 에 대해 $$ \textrm{Precision} + \textrm{Recall} = c $$ 라고 가정한다면, 다시 말해 어느 한 쪽이 높을 때 다른 한 쪽이 그에 비례해서 낮다고 할 때 $F_{1}$ 이 어떻게 되는지 살펴보자. 기왕 구체적인 수치로 설명했으니 $c = 1.6$ 일 때 가장 균형잡힌 모델 $A(0.8, 0.8)$ 와 적당한 모델 $B(0.7, 0.9)$ 가장 불균형한 모델 $C(0.6, 1.0)$ 를 직접 계산해서 비교해볼 것이다. 이들 모두 두 지표의 산술평균으로 계산하면 똑같이 $0.8$ 로 퍼포먼스가 같지만, $F_{1}$ 을 각자 계산해보면 $$ \begin{align*} F_{1}(A) =& {{ 2 } \over { 0.8^{-1} + 0.8^{-1} }} = 0.8 \\ F_{1}(B) =& {{ 2 } \over { 0.7^{-1} + 0.9^{-1} }} = 0.7875 \\ F_{1}(C) =& {{ 2 } \over { 0.6^{-1} + 1.0^{-1} }} = 0.75 \end{align*} $$ 으로 가장 불균형한 모델에서 가장 낮게 측정된 것을 알 수 있다. 다시 말해, 조화평균은 불균형이 심할수록 둘 중 낮은 값에 가깝게 측정된다. 이렇게 계산되는 이유는 $F_{1}$ 스코어의 수식 $$ \begin{align*} F_{1} =& {{ 2 } \over { \textrm{Precision}^{-1} + \textrm{Recall}^{-1} }} \\ =& 2 {{ \textrm{Precision} \cdot \textrm{Recall} } \over { \textrm{Precision} + \textrm{Recall} }} \end{align*} $$ 의 분자, 분모에서 찾을 수 있다. $\textrm{Precision}$ 과 $\textrm{Recall}$ 을 변의 길이로 가지는 직사각형을 상상해보면, 분모의 두배는 둘레고 분자는 넓이에 해당한다. 알다시피 둘레가 일정한 직사각형의 넓이가 가장 커지는 것은 너비와 높이가 정확하게 같은 상황, 즉 $\textrm{Precision} = \textrm{Recall}$ 일 때고 여기서 멀어질수록 퍼포먼스는 떨어지게 되는 것이다.

요약

정리하자면 $F_{1}$ 스코어는 정밀도와 재현도 둘 다가 중요할 때 유용한 척도다. 하나가 높아도 나머지 하나가 낮을수록 불리하게 평가되며, 주어진 트레이드 오프 속에서는 둘의 균형을 맞춰야만 높게 측정된다. 모델의 성능을 올린다는 것은 ‘주어진 트레이드 오프’ 자체를 개선시키는 것이므로, $F_{1}$ 스코어는 비교적 조작이 통하지 않고 좋은 지표임을 알 수 있다.

단점은 이걸 직관적으로 쉽게 설명하기 곤란하다는 것이다. 비전문가, 특히 대중들이 보기에는 이미 정밀도와 재현도도 이해하기 어려우며, 그 두가지가 어떻게 다른지는 더욱 알기 어렵고 그 조화평균인 $F_{1}$ 스코어를 이해시키는 것은 불가능에 가깝다.

일반화

$$ F_{\beta} := {{ 1 + \beta^{2} } \over { \beta^{2} \textrm{Precision}^{-1} + \textrm{Recall}^{-1} }} $$ $F_{1}$ 은 위와 같이 가중치를 달리 한 $F_{\beta}$ 에서 $\beta = 1$ 인 특수한 경우다. $\beta = 0$ 이면 정확히 리콜과 같고, $\beta$ 가 커질수록 프리시전의 영향이 커지는 형태로 정의되어 있다. 이러한 의미에서 $F_{1}$ 는 프리시전과 리콜을 같은 정도로 중요하게 취급하는 척도라 할 수 있다. $F_{\beta}$ 가 의미를 가지는 상황은 ‘수치적인 해석’에서 설명한 것과 같이 정밀도와 재현도가 $$ \textrm{Precision} + \textrm{Recall} = c $$ 와 같은 트레이드 오프 관계를 가질 때가 아닌 $$ \textrm{Precision} + \beta^{2} \textrm{Recall} = c $$ 와 같은 관계를 가진다고 가정할 수 있을 때일 것이다. 동일한 데이터에 동일한 모델이라도 어떤 오류가 더 심각한지는 문제에 따라 천차만별로 다를 수 있다.

같이보기