F1スコアとは?
F1スコアは、適合率(Precision)と再現率(Recall)という2つの指標を1つの数値にまとめた評価指標です。機械学習や情報検索、統計の分野で分類モデルの性能を測る際に広く使われています。F1スコアは適合率と再現率の調和平均であるため、どちらか一方だけが優れているモデルよりも、両者をバランスよく両立させたモデルを高く評価するのが特徴です。
このツールの使い方
混同行列(Confusion Matrix)から得られる3つの値を入力してください。真陽性(TP:正例を正しく正例と予測した数)、偽陽性(FP:負例を誤って正例と予測した数)、偽陰性(FN:見逃してしまった正例の数)の3つです。値を入力すると、適合率・再現率・F1スコアが即座に表示されます。
計算式の解説
適合率 = TP /(TP + FP)は、「正例と予測したもののうち、実際に正しかった割合」を表します。再現率 = TP /(TP + FN)は、「実際の正例のうち、正しく拾えた割合」を表します。そしてF1スコアは
$$F_1 = \frac{2 \cdot (\text{適合率} \times \text{再現率})}{\text{適合率} + \text{再現率}}$$で求められます。調和平均を用いているため、適合率と再現率のどちらかが低いと、F1スコアも大きく下がる仕組みになっています。
計算例
たとえば \(\text{TP} = 70\)、\(\text{FP} = 30\)、\(\text{FN} = 10\) とします。適合率 = 70 / 100 = 0.70、再現率 = 70 / 80 = 0.875 となります。これを式に当てはめると、
$$F_1 = \frac{2 \times (0.70 \times 0.875)}{0.70 + 0.875} = \frac{2 \times 0.6125}{1.575} \approx 0.7778$$つまり約77.78%になります。
よくある質問
正解率(Accuracy)ではなくF1スコアを使うべきなのはどんなとき? クラスの偏り(不均衡データ)がある場合はF1スコアが適しています。一方のクラスが大多数を占めると、正解率は実態以上に高く見えてしまうことがあるためです。
F1スコアはどれくらいが「良い」とされる? F1スコアは0から1の範囲をとり、1に近いほど優れています。何を「良い」とするかはタスクによって異なりますが、一般的に0.8を超えると高い性能とみなされることが多いです。
なぜ調和平均を使うの? 調和平均は、適合率と再現率の偏りが大きいときに、単純平均よりも強くペナルティを与えます。これにより、両方ともある程度高くなければ良いスコアが出ない仕組みになっています。