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
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!
La sensibilité: est donnée par la formule suivante:
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:
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:
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:
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!
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.
Il est donné par la formule suivante:
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!
Il compare la sensibilité vs (spécificité 1), en d'autres termes, compare le taux positif vrai vs le taux faux positif.
Ainsi, plus l'AUROC est grand, plus la distinction entre les vrais positifs et les vrais négatifs est grande!
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:
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.
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:
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.