logo

データサイエンスにおけるF1スコアとは? 📂データサイエンス

データサイエンスにおけるF1スコアとは?

定義

分類問題でPositive PP とNegative NN を区別するモデルがあるとする。正を正として認識した数をTrue Positive TPTP、負を負として認識した数をTrue Negative TNTN、正を誤って負と判断した数をFalse Negative FNFN、負を誤って正と判断した数をFalse Positive FPFP としよう。

数式的定義

以下の数値をモデルの精度precisionとする。 Precision=TPTP+FP \textrm{Precision} = {{ TP } \over { TP + FP }} 以下の数値をモデルの再現率recallとする。 Recall=TPP \textrm{Recall} = {{ TP } \over { P }} 精度と再現率の調和平均をモデルのF1スコアf1 Scoreとする。 F1:=2Precision1+Recall1 F_{1} := {{ 2 } \over { \textrm{Precision}^{-1} + \textrm{Recall}^{-1} }}

説明

F1F_{1}スコアは、精度と再現率が持つ欠点を補うための指標であり、一方が軽視されるときにより大きなペナルティを課し、モデルが全体的に優れているかを評価する。特に、データのラベリング、つまり正と負の不均衡が激しい二値分類問題では、モデルを評価するために最も一般的に使用される指標である。

直感的な意味

本質的にF1F_{1}スコアは、それ自体で直感的な解釈を提供しない。調和平均がなぜ出てくるのかもそうだが、どこにでもある説明を見ても、必ず精度と再現率を先に言及し、その後にF1F_{1}スコアでまとめる。

精度が「正を確実に当てる力」を示し、再現率が「正を見逃さず見つける力」を示すなら、F1F_{1}スコアは「精度と再現率の間でバランスを失わない本質的な力」を示すと言える。数学的に必ず保証されるわけではないが、経験的に精度と再現率はトレードオフの関係にあり、どちらか一方の指標を犠牲にしてもう一方を極端に過大評価する可能性がある。精度に問題がある場合は、精度や再現率を使用する状況であれば、そのような不均衡について知っている必要がある。

数式的解釈

F1F_{1}スコアについての説明は非常に多く、その中で調和平均自体の幾何学的性質を説明する方法も良いが、個人的にはそういった説明は既にF1F_{1}が何であるかを知っているときに「なぜそのように定義されるのか」をより明確に理解させる説明であり、初めて接する立場から「F1F_{1}スコアが具体的にどのように解釈されるか」を簡単に知らせることはできないと思う。単純に最も基本的な「数値」から考えてみよう。

まず、精度は「正としてマークしたものの中の実際の正」なので00から11の値を持ち、再現率も「実際の正の中で正としてマークしたもの」なので00から11の値を持つ。言い換えれば、精度と再現率は次のような不等式を満たす。 11Precision11Recall2Precision1+Recall1    F1=2Precision1+Recall11 \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 つまりF1F_{1}11のときに最大の値を持ち、等式が満たされる場合は精度と再現率が両方とも11の状況のみである。2つの指標のどちらかが00に近づくと分母は発散するためF1F_{1}インフィマム00であり、もう少し明確に書くと 0<F11 0 < F_{1} \le 1 のように00から11の間に正規化されたnormalized数値であり、1=100%1 = 100\%に近いほど良い数値であることがわかる。もちろんF1F_{1}00に近づくことは2つの指標が自由で非常に極端に与えられた場合を言うのであり、実際には次の定理により、より小さい方に近づくだけである。

調和平均の上限と下限: a,b>0a,b > 0の調和平均はaabbの間の値を持つ。max\maxmin\min最大値と最小値を意味する。 min(a,b)H(a,b)max(a,b) \min (a,b) \le H (a,b) \le \max (a,b)

一方、すでに言及したように、精度と再現率は通常トレードオフの関係にあるとされる。あるc(0,2)c \in (0,2)に対して単純に Precision+Recall=c \textrm{Precision} + \textrm{Recall} = c と仮定すると、つまり一方が高いときにもう一方がそれに比例して低いとすると、F1F_{1}がどのようになるか見てみよう。既に具体的な数値で説明したので、c=1.6c = 1.6のときに最もバランスが取れたモデルA(0.8,0.8)A(0.8, 0.8)、適切なモデルB(0.7,0.9)B(0.7, 0.9)、最も不均衡なモデルC(0.6,1.0)C(0.6, 1.0)を直接計算して比較する。これらすべてを2つの指標の算術平均で計算すると同じ0.80.8のパフォーマンスになるが、各自のF1F_{1}を計算すると F1(A)=20.81+0.81=0.8F1(B)=20.71+0.91=0.7875F1(C)=20.61+1.01=0.75 \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*} 最も不均衡なモデルで最も低く評価されたことがわかる。この計算はF1F_{1}スコアの数式 F1=2Precision1+Recall1=2PrecisionRecallPrecision+Recall \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*} の分子、分母から見つけることができる。Precision\textrm{Precision}Recall\textrm{Recall}の辺の長さを持つ長方形を想像してみると、分母の2倍は周囲で、分子は面積に該当する。周囲が一定の長方形の面積が最も大きくなるのは幅と高さが正確に同じ状況、つまりPrecision=Recall\textrm{Precision} = \textrm{Recall}のときであり、ここから離れるほどパフォーマンスは落ちることになる。

定理

まとめると、F1F_{1}スコアは精度と再現率の両方が重要なときに有用な指標である。一方が高くてももう一方が低いと不利に評価され、与えられたトレードオフの中で、両方のバランスを取ることでのみ高く評価される。モデルの性能を上げることは、「与えられたトレードオフ」自体を改善することなので、F1F_{1}スコアは比較的操作に強く、信頼性のある指標であることがわかる。

欠点は、これを直感的に簡単に説明することが難しいことである。非専門家、特に一般の人々には、すでに精度と再現率も理解するのが難しく、それらがどのように異なるかをさらに知ることはもっと難しく、それらの調和平均であるF1F_{1}スコアを説明することはほぼ不可能に近い。

一般化

Fβ:=1+β2β2Precision1+Recall1 F_{\beta} := {{ 1 + \beta^{2} } \over { \beta^{2} \textrm{Precision}^{-1} + \textrm{Recall}^{-1} }} F1F_{1}重みを異なるFβF_{\beta}から▷eq51