F1スコアとは
F1 Score / F値
適合率と再現率の調和平均により、両者をバランスよく評価する指標
ひとことで言うと
概要
F1スコア(F1 Score, F値)とは、適合率(Precision)と再現率(Recall)の調和平均によって算出される評価指標。 適合率と再現率はトレードオフの関係になりやすく、どちらか一方だけを見ていては分類モデルの性能を適切に評価できないため、両者をバランスよく1つの数値にまとめた指標としてF1スコアが広く使われている。 分類タスクだけでなく、情報検索や固有表現抽出等、適合率・再現率が定義できる様々なタスクの評価に用いられる。 調和平均を用いることで、適合率か再現率のどちらか一方が極端に低い場合にスコアが大きく下がる性質を持ち、単純な相加平均よりも両者のバランスの悪さを反映しやすい。
背景
適合率と再現率はどちらか一方を高めようとすると他方が犠牲になりやすく、モデル同士を単一の指標で比較したい場面では両者を統合した指標が必要とされた。 F1スコアは、単純な平均(算術平均)ではなく調和平均を用いることで、バランスの悪い(片方が極端に低い)モデルのスコアを低く抑えるよう設計されている。
アーキテクチャ
F1スコアは、適合率をP、再現率をRとしたとき、F1 = 2 × (P × R) / (P + R)という調和平均の式で計算される。 適合率・再現率のどちらか一方が極端に低い場合、F1スコアも低くなる。
ワークフロー
モデルの予測結果と正解ラベルから適合率・再現率をそれぞれ算出 → 両者の調和平均をとりF1 = 2 × (P × R) / (P + R)を計算 → 単一のスコアとしてモデル間の比較や閾値の調整に利用。
コード例
scikit-learnでF1スコアを計算する
from sklearn.metrics import f1_score
y_true = [1, 0, 1, 1, 0]
y_pred = [1, 0, 0, 1, 1]
print(f1_score(y_true, y_pred))利点
欠点
比較
関連用語
よくある質問
参考文献
- Documentationscikit-learn: Precision, recall and F-measures