何が「良い」と考えられますか? f1のスコアは?
機械学習で分類モデルを使用する場合、モデルの品質を評価するために使用する一般的な指標はF1 スコアです。
このメトリクスは次のように計算されます。
F1 スコア= 2 * (適合率 * 再現率) / (適合率 + 再現率)
金:
- 精度: 陽性予測の合計に対する正しい陽性予測
- リマインダー: 実際の陽性合計に対する陽性予測の修正
たとえば、ロジスティック回帰モデルを使用して、400 人の異なる大学バスケットボール選手が NBA にドラフトされるかどうかを予測するとします。
次の混同行列は、モデルによって行われた予測を要約したものです。

モデルの F1 スコアを計算する方法は次のとおりです。
精度 = 真陽性 / (真陽性 + 偽陽性) = 120/ (120+70) = 0.63157
リコール = 真陽性 / (真陽性 + 偽陰性) = 120 / (120+40) = 0.75
F1 スコア = 2 * (.63157 * .75) / (.63157 + .75) = 。 6857
良いF1スコアとは何ですか?
学生からよく聞かれる質問は次のとおりです。
F1で良いスコアとは何ですか?
簡単に言うと、一般に F1 スコアが高いほど優れています。
F1 スコアの範囲は 0 から 1 で、1 は各観測値を正しいクラスに完全に分類するモデルを表し、0 は観測値を正しいクラスに分類できないモデルを表します。
これを説明するために、次の混同行列を生成するロジスティック回帰モデルがあると仮定します。

モデルの F1 スコアを計算する方法は次のとおりです。
精度 = 真陽性 / (真陽性 + 偽陽性) = 240/ (240+0) = 1
再現率 = 真陽性 / (真陽性 + 偽陰性) = 240 / (240+0) = 1
F1 スコア = 2 * (1 * 1) / (1 + 1) = 1
F1 スコアは 400 の観測値のそれぞれを 1 つのクラスに完全に分類できるため、1 に等しくなります。
ここで、各選手がドラフトされることを単純に予測する別のロジスティック回帰モデルを考えてみましょう。

モデルの F1 スコアを計算する方法は次のとおりです。
精度 = 真陽性 / (真陽性 + 偽陽性) = 160/ (160+240) = 0.4
リコール = 真陽性 / (真陽性 + 偽陰性) = 160 / (160+0) = 1
F1 スコア = 2 * (.4 * 1) / (.4 + 1) = 0.5714
これは、データセット内のすべての観測値に対して同じ予測を行うモデルを表すため、ロジスティック回帰モデルと比較できるベースライン モデルとみなされます。
参照モデルと比較して F1 スコアが高いほど、モデルの有用性が高くなります。
先ほどのモデルの F1 スコアが0.6857であったことを思い出してください。これは0.5714よりもそれほど高くなく、私たちのモデルがベースライン モデルよりも有用であることを示していますが、大幅ではありません。
F1スコアの比較について
実際には、通常、次のプロセスを使用して、分類問題に「最適な」モデルを選択します。
ステップ 1:各観測値に対して同じ予測を行う参照モデルを適合させます。
ステップ 2:いくつかの異なる分類モデルを当てはめ、各モデルの F1 スコアを計算します。
ステップ 3:最も高い F1 スコアを持つモデルを「最良」モデルとして選択し、それが参照モデルよりも高い F1 スコアを生成することを確認します。
特定の値が「良好な」 F1 スコアとみなされないため、通常は最も高い F1 スコアを生成する分類モデルを選択します。
追加リソース
F1 スコアと精度: どちらを使用するべきですか?
R で F1 スコアを計算する方法
Python で F1 スコアを計算する方法