web-dev-qa-db-ja.com

F1スコアとROC AUC

2つの異なるケースについて、以下のF1およびAUCスコアがあります

モデル1:精度:85.11リコール:99.04 F1:91.55 AUC:69.94

モデル2:精度:85.1リコール:98.73 F1:91.41 AUC:71.69

私の問題の主な動機は、陽性症例を正確に予測すること、すなわち、偽陰性症例(FN)を減らすことです。 F1スコアを使用してモデル1を選択するか、AUCを使用してモデル2を選択する必要があります

19
user3342643

前書き

経験則として、ROC AUCF1スコアを比較するたびに、比較しているように考えてください。以下に基づくモデルのパフォーマンス:

[Sensitivity vs (1-Specificity)] VS [Precision vs Recall]

ここで、感度、特異性、精度、リコールとは何かを理解する必要があります直感的に


バックグラウンド

感度:は次の式で与えられます:

sensitivity formula

直観的に言えば、100%敏感なモデルがある場合、それはそうであったことを意味します[〜#〜] not [〜#〜]True Positiveを見逃した、言い換えれば、 [〜#〜] no [〜#〜]False Negatives(つまり、ネガティブとしてラベル付けされたポジティブな結果)。しかし、多くの誤検知が発生するリスクがあります!

特異性:は次の式で与えられます:

specificity formula

直観的に言えば、100%の特定のモデルがある場合、つまり、[〜#〜] not [〜#〜]True Negativeを見逃した、つまり[〜#〜] no [〜#〜]偽陽性(つまり、陽性とラベル付けされた陰性結果)。しかし、多くの偽陰性を持つリスクがあります!

精度:は次の式で与えられます: Precision Formula

直観的に言えば、100%正確なモデルがある場合、それはすべてをキャッチできることを意味しますTrue positiveがありましたが、 #〜]誤検知。

リコール:は次の式で与えられます:

Recall Formula

直観的に言えば、100%のリコールモデルがある場合、それは、[〜#〜] not [〜#〜]True Positiveを見逃したことを意味します。つまり、 [〜#〜] no [〜#〜]False Negatives(つまり、ネガティブとしてラベル付けされたポジティブな結果)。

ご覧のとおり、4つの概念は互いに非常に近いものです。

f1 score


経験則として、偽陰性のコストが高い場合、モデルの感度とリコールを増やしたい(それらの式)!!.

たとえば、不正行為の検出や病気の患者の検出では、不正なトランザクション(True Positive)を非不正(False Negative)としてラベル付け/予測したくありません。また、伝染病患者(True Positive)を病気ではない(False Negative)としてラベル付け/予測したくありません。

これは、結果が偽陽性(無害なトランザクションを不正または非伝染性の患者を伝染性として誤ってラベル付けする)よりも悪いためです。

一方、False Positiveのコストが高い場合、モデルの特異性と精度を高めたいと思います!。

たとえば、電子メールのスパム検出では、非スパムの電子メール(True Negative)をスパム(False Positive)としてラベル付け/予測したくありません。一方、スパムメールにスパム(False Negative)のラベルを付けない方がコストはかかりません。


F1スコア

次の式で与えられます:

F1 Score Formula

F1スコアは、精度とリコールの間でbalanceを維持します。クラスの分布が不均一な場合は、精度と再現率が誤解を招く可能性があるため、これを使用します!

そのため、F1スコアを精度とリコール番号の比較指標として使用します!


受信機動作特性曲線下面積(AUROC)

感度と(1-特異性)を比較します。つまり、真陽性率と偽陽性率を比較します。

area under the curve

そのため、AUROCが大きいほど、True PositiveとTrue Negativeの区別が大きくなります。


AUROC対F1スコア(結論)

一般に、ROCは多くの異なるレベルのしきい値用であるため、多くのFスコア値があります。 F1スコアは、ROC曲線上の特定のポイントに適用されます。

AUCはROC曲線の下の領域であるのに対して、特定のしきい値での精度とリコールの尺度と考えることができます。 Fスコアを高くするには、精度と再現率の両方が高い必要があります。

その結果、正と負のサンプル間にデータ不均衡がある場合、ROCすべての可能なしきい値にわたる平均


さらに読む:

クレジットカード詐欺:非常に不均衡なクラスを処理し、受信者動作特性曲線(ROC曲線)を使用しない理由、および非常に不均衡な状況では精度/リコール曲線を優先する必要がある


編集

私は意図的にSensitivityRecallの両方の用語を意図的に使用しましたが、MLエンジニアとして慣例によりRecallという用語を使用する可能性が高いという事実を強調するためです。 、統計学者はSensitivityという用語を使用して同じ測定値を参照する可能性が高くなります。

34
Yahya

定義を見れば、AUCとF1-scoreの両方が、実際に真陽性である「陽性」とラベル付けされたサンプルの一部とともに「何か」を最適化できます。

この「何か」は:

  • AUCの場合、特異性。これは、正しく標識された陰性標識サンプルの割合です。正にラベル付けされたサンプルのうち、正しくラベル付けされた部分を見ていません。
  • F1スコアを使用すると、その精度は、正のラベルが付けられたサンプルのうち、正しくラベル付けされた割合です。また、F1スコアを使用すると、陰性とラベル付けされたサンプルの純度(特異性)は考慮されません。

クラスのバランスが非常に悪い、または歪んでいる場合、違いが重要になります。たとえば、真のポジティブよりも真のネガがはるかに多くあります。

まれな病気の人を見つけるために、一般集団のデータを見ているとします。 「ポジティブ」よりも「ネガティブ」な人の方がはるかに多く、AUCを使用してポジティブサンプルとネガティブサンプルを同時に最適化しようとするのは最適ではありません。可能であれば、陽性サンプルにすべての陽性が含まれるようにし、偽陽性率が高いためにそれが大きくなることは望ましくありません。この場合、F1スコアを使用します。

逆に、両方のクラスがデータセットの50%を構成する場合、または両方がかなりの割合を占める場合、各クラスを均等に識別するパフォーマンスを重視する場合は、AUCを使用する必要があります。

1
Paul