F1 スコアと精度: どちらを使用するべきですか?
機械学習で分類モデルを使用する場合、モデルの品質を評価するためによく使用される 2 つの指標は、 F1 スコアと精度です。
どちらのメトリクスでも、値が大きいほど、モデルが観測値をクラスに分類できる能力が高くなります。
ただし、各指標は異なる計算式を使用して計算されるため、その計算式の使用には利点と欠点があります。
次の例は、実際に各メトリックを計算する方法を示しています。
例: F1 スコアと精度の計算
ロジスティック回帰モデルを使用して、400 人のさまざまな大学バスケットボール選手が NBA にドラフトされるかどうかを予測するとします。
次の混同行列は、モデルによって行われた予測を要約したものです。
混同行列のさまざまなメトリックを計算する方法は次のとおりです。
精度:陽性予測の合計に対する正しい陽性予測
- 精度 = 真陽性 / (真陽性 + 偽陽性)
- 精度 = 120 / (120 + 70)
- 精度 = 0.63
リマインダー:実際の陽性者数の合計に対して陽性予測を修正する
- リコール = 真陽性 / (真陽性 + 偽陰性)
- 再現率 = 120 / (120 + 40)
- リコール = 0.75
精度:正しく分類されたすべての観測値の割合
- 精度 = (真陽性 + 真陰性) / (合計サンプルサイズ)
- 精度 = (120 + 170) / (400)
- 精度 = 0.725
F1 スコア:適合率と再現率の調和平均
- F1 スコア = 2 * (適合率 * 再現率) / (適合率 + 再現率)
- F1 スコア = 2 * (0.63 * 0.75) / (0.63 + 0.75)
- F1 スコア = 0.685
F1 スコアと精度をいつ使用するか
F1 スコアと精度を使用することには長所と短所があります。
精度:
長所: 解釈しやすい。モデルの精度が 90% であると言えば、観測値の 90% が正しく分類されたことがわかります。
短所: データの分散方法が考慮されていません。たとえば、全選手の 90% が NBA にドラフト指名されなかったと仮定します。すべてのプレーヤーがドラフト外になることを単純に予測するモデルがある場合、モデルは 90% のプレーヤーの結果を正確に予測します。この値は高いように見えますが、実際にはモデルはどの選手がドラフトされるかを正確に予測できません。
F1結果:
長所: データがどのように分散されるかを検討してください。たとえば、データの不均衡が非常に大きい場合 (たとえば、全選手の 90% がドラフト外選手で、10% がドラフト外選手)、F1 スコアの方がモデルのパフォーマンスをより適切に評価できます。
短所: 解釈が難しくなります。 F1 スコアは精度とモデル再現率が混在しているため、解釈が少し難しくなります。
一般的に:
クラスのバランスが取れており、偽陰性の予測に大きな欠点がない場合、精度を使用することがよくあります。
クラスの不均衡があり、偽陰性の予測に重大な欠点がある場合、 F1 スコアをよく使用します。
たとえば、ロジスティック回帰モデルを使用して人ががんに罹患しているかどうかを予測する場合、偽陰性は非常に悪いため(たとえば、実際にがんを行っているときにその人ががんに罹っていないと予測するなど)、F1 スコアは次のようなモデルにペナルティを与えます。偽陰性が多すぎます。精度以上のもの。
追加リソース
回帰 vs.分類:違いは何ですか?
ロジスティック回帰の概要
R でロジスティック回帰を実行する方法
Python でロジスティック回帰を実行する方法