web-dev-qa-db-fra.com

Score F1 vs ROC AUC

J'ai les scores F1 et AUC ci-dessous pour 2 cas différents

Modèle 1: Précision: 85,11 Rappel: 99,04 F1: 91,55 ASC: 69,94

Modèle 2: Précision: 85,1 Rappel: 98,73 F1: 91,41 AUC: 71,69

Le principal motif de mon problème pour prédire correctement les cas positifs, c'est-à-dire réduire les cas de faux négatifs (FN). Dois-je utiliser le score F1 et choisir le modèle 1 ou utiliser l'ASC et choisir le modèle 2. Merci

19
user3342643

Introduction

En règle générale, chaque fois que vous voulez comparer ROC AUC vs F1 Score , pensez-y comme si vous compariez les performances de votre modèle en fonction de:

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

Maintenant, nous devons comprendre ce que sont: la sensibilité, la spécificité, la précision et le rappel intuitivement!


Contexte

La sensibilité: est donnée par la formule suivante:

sensitivity formula

Intuitivement, si nous avons un modèle 100% sensible, cela signifie qu'il [~ # ~] n'a pas [~ # ~] manqué de vrai positif, en d'autres termes, il n'y avait [~ # ~] pas [~ # ~] Faux négatifs ( c'est-à-dire un résultat positif étiqueté comme négatif). Mais il y a un risque d'avoir beaucoup de faux positifs!

Spécificité: est donnée par la formule suivante:

specificity formula

Intuitivement, si nous avons un modèle spécifique à 100%, cela signifie qu'il [~ # ~] n'a pas [~ # ~] manqué de vrai négatif, dans en d'autres termes, il n'y avait [~ # ~] pas [~ # ~] Faux positifs ( c'est-à-dire un résultat négatif étiqueté comme positif). Mais il y a un risque d'avoir beaucoup de faux négatifs!

Précision: est donnée par la formule suivante: Precision Formula

Intuitivement parlant, si nous avons un modèle 100% précis, cela signifie qu'il pourrait tout attraper Vrai positif mais il y en avait [~ # ~] non [~ # ~] Faux positif.

Rappel: est donné par la formule suivante:

Recall Formula

Intuitivement, si nous avons un modèle de rappel à 100%, cela signifie qu'il [~ # ~] n'a pas [~ # ~] manqué de vrai positif, en d'autres termes, il n'y avait [~ # ~] pas [~ # ~] Faux négatifs ( c'est-à-dire un résultat positif étiqueté comme négatif).

Comme vous pouvez le constater, les quatre concepts sont très proches les uns des autres!

f1 score


En règle générale, si le coût d'avoir un faux négatif est élevé, nous voulons augmenter la sensibilité et le rappel du modèle ( qui sont exactement la même chose en ce qui concerne leur formule) !.

Par exemple, dans la détection de fraude ou la détection de patients malades, nous ne voulons pas étiqueter/prédire une transaction frauduleuse (True Positive) comme non frauduleuse (False Negative). De plus, nous ne voulons pas étiqueter/prédire un patient malade contagieux (Vrai Positif) comme non malade (Faux Négatif).

En effet, les conséquences seront pires qu'un faux positif (étiquetage incorrect d'une transaction inoffensive comme frauduleuse ou d'un patient non contagieux comme contagieux).

D'un autre côté, si le coût d'avoir un faux positif est élevé, alors nous voulons augmenter la spécificité et la précision du modèle!.

Par exemple, dans la détection de spam par e-mail, nous ne voulons pas étiqueter/prédire un e-mail non-spam (True Negative) comme spam (False Positive). D'un autre côté, ne pas étiqueter un e-mail de spam comme spam (faux négatif) est moins coûteux.


Score F1

Il est donné par la formule suivante:

F1 Score Formula

Le score F1 conserve un équilibre entre la précision et le rappel. Nous l'utilisons s'il y a une distribution de classe inégale, car la précision et le rappel peuvent donner des résultats trompeurs!

Nous utilisons donc F1 Score comme indicateur de comparaison entre les nombres de précision et de rappel!


Aire sous la courbe caractéristique de fonctionnement du récepteur (AUROC)

Il compare la sensibilité vs (spécificité 1), en d'autres termes, compare le taux positif vrai vs le taux faux positif.

area under the curve

Ainsi, plus l'AUROC est grand, plus la distinction entre les vrais positifs et les vrais négatifs est grande!


AUROC vs F1 Score (Conclusion)

En général, le ROC est pour de nombreux niveaux différents de seuils et il a donc de nombreuses valeurs de score F. Le score F1 est applicable pour tout point particulier de la courbe ROC.

Vous pouvez le considérer comme une mesure de précision et de rappel à une valeur de seuil particulière alors que l'ASC est la zone sous la courbe ROC. Pour que le score F soit élevé, la précision et le rappel doivent être élevés.

Par conséquent , lorsque vous avez un déséquilibre de données entre les échantillons positifs et négatifs, vous devez toujours utiliser le score F1 parce que ROC fait la moyenne sur tous les seuils possibles!


Lire ensuite:

Fraude par carte de crédit: gestion des classes à déséquilibre élevé et pourquoi la courbe des caractéristiques de fonctionnement du récepteur (courbe ROC) ne doit pas être utilisée, et la courbe de précision/rappel doit être préférée dans les situations très déséquilibrées


ÉDITER

J'ai intentionnellement utilisé les deux termes Sensitivity et Recall, bien qu'ils soient exactement les mêmes, juste pour souligner le fait que par convention en tant qu'ingénieurs ML, nous utilisons plus probablement le terme Recall , tandis que les statisticiens utiliseraient plus probablement le terme Sensitivity pour désigner la même mesure exacte.

34
Yahya

Si vous regardez les définitions, vous pouvez voir que l'ASC et le score F1 optimisent "quelque chose" avec la fraction de l'échantillon étiquetée "positive" qui est en fait vraiment positive.

Ce "quelque chose" est:

  • Pour l'ASC, la spécificité, qui est la fraction de l'échantillon marqué négativement qui est correctement étiquetée. Vous ne regardez pas la fraction de vos échantillons positivement étiquetés qui est correctement étiquetée.
  • En utilisant le score F1, c'est la précision: la fraction de l'échantillon marqué positivement qui est correctement étiquetée. Et en utilisant le score F1, vous ne considérez pas la pureté de l'échantillon étiqueté comme négatif (la spécificité).

La différence devient importante lorsque vous avez des classes très déséquilibrées ou asymétriques: par exemple, il y a beaucoup plus de vrais négatifs que de vrais positifs.

Supposons que vous examiniez les données de la population générale pour trouver des personnes atteintes d'une maladie rare. Il y a beaucoup plus de personnes "négatives" que "positives", et essayer d'optimiser vos performances sur les échantillons positifs et négatifs simultanément, en utilisant l'ASC, n'est pas optimal. Vous voulez que l'échantillon positif inclue tous les positifs si possible et vous ne voulez pas qu'il soit énorme, en raison d'un taux élevé de faux positifs. Donc, dans ce cas, vous utilisez le score F1.

Inversement, si les deux classes représentent 50% de votre ensemble de données, ou si les deux constituent une fraction importante, et que vous vous souciez de vos performances pour identifier chaque classe de manière égale, vous devez utiliser l'AUC, qui optimise pour les deux classes, positive et négative.

1
Paul