Comment choisir entre le ROC AUC et le score F1?

26

J'ai récemment terminé un concours Kaggle dans lequel le score roc auc a été utilisé conformément aux exigences du concours. Avant ce projet, j'utilisais normalement le score f1 comme mesure pour mesurer les performances du modèle. À l'avenir, je me demande comment dois-je choisir entre ces deux mesures? Quand les utiliser et quels sont leurs avantages et inconvénients respectifs?

Btw, j'ai lu l'article ici Quelles sont les différences entre AUC et F1-score? , mais il ne me dit pas quand utiliser quoi.

Merci d'avance pour votre aide!

George Liu
la source

Réponses:

14

Aucune des mesures énumérées ici n'est une règle de notation de précision appropriée, c'est-à-dire une règle optimisée par un modèle correct. Considérons le score de Brier et les mesures basées sur la log-vraisemblance telles que le pseudo . L' index (AUROC; probabilité de concordance) n'est pas approprié mais est bon pour décrire un modèle unique. Il n'est pas assez sensible à utiliser pour choisir des modèles ou comparer même aussi peu que deux modèles.R2c

Frank Harrell
la source
Merci pour ta réponse Frank! J'ai besoin d'éclaircissements supplémentaires s'il vous plaît. Si nous ne pouvions choisir que parmi les scores ROC AUC et F1, lequel choisiriez-vous et pourquoi? Quels sont les avantages et les inconvénients des deux?
George Liu
2
Si vous n'êtes autorisé qu'à choisir parmi -index et F1, vous ne discutez pas assez fortement. L'étalon-or est la log-vraisemblance, la log-vraisemblance pénalisée ou l'équivalent bayésien (par exemple, DIC). À côté de cela se trouve le score de Brier. c
Frank Harrell
2
Voir citeulike.org/user/harrelfe/article/14321176 ; Je l'ai montré avec mes propres simulations. Si le déséquilibre n'est pas dû à un suréchantillonnage / sous-échantillonnage, vous pouvez utiliser n'importe quelle règle de notation appropriée quel que soit le déséquilibre.
Frank Harrell
1
@FrankHarrell: le lien est mort, pouvez-vous le revérifier?
SiXUlm
13

Formule de calcul:

  • TP de précision / (TP + FP)
  • Rappel: TP / (TP + FN)
  • F1-score: 2 / (1 / P + 1 / R)
  • ROC / AUC: TPR = TP / (TP + FN), FPR = FP / (FP + TN)

ROC / AUC est le même critère et la courbe PR (Precision-Recall) (F1-score, Precision, Recall) est également le même critère.

Les données réelles auront tendance à avoir un déséquilibre entre les échantillons positifs et négatifs. Ce déséquilibre a un effet important sur le PR mais pas sur le ROC / AUC.

Ainsi, dans le monde réel, la courbe PR est davantage utilisée car les échantillons positifs et négatifs sont très inégaux. La courbe ROC / AUC ne reflète pas les performances du classificateur, mais la courbe PR le peut.

Si vous faites simplement l'expérience dans des documents de recherche, vous pouvez utiliser le ROC, les résultats expérimentaux seront plus beaux. D'autre part, l'utilisation de la courbe PR dans le vrai problème, et elle a une meilleure interprétabilité.

WeiYuan
la source
7

Les réponses ci-dessus sont toutes les deux bonnes.

Skew=negativeexamplespositiveexamples

Avec des données déséquilibrées, l'ASC vous donne toujours une valeur spécieuse autour de 0,8. Cependant, il est élevé en raison du grand FP, plutôt que du grand TP (True positif).

Comme l'exemple ci-dessous,

TP=155,   FN=182
FP=84049, TN=34088

Ainsi, lorsque vous utilisez l'AUC pour mesurer les performances du classificateur, le problème est que l'augmentation de l'AUC ne reflète pas vraiment un meilleur classificateur. C'est juste l'effet secondaire de trop d'exemples négatifs. Vous pouvez simplement essayer dans votre jeu de données.

Fβ=(1+β2)precisionrecall(β2precision)+recall

β

Ensuite, mes suggestions de données déséquilibrées sont similaires à ce message . Vous pouvez également essayer la table de décile, qui peut être construite en recherchant "Tables de classification et de décile deux par deux". En attendant, j'étudie également ce problème et donnerai une meilleure mesure.

Xiaorui Zhu
la source
Si vous vous souciez des performances d'une méthode, vous feriez mieux d'utiliser ROC pour montrer ses performances de classification, mais si vous vous souciez davantage de la prédiction réelle du vrai positif, le score F1 est le bienvenu dans l'industrie.
Xiaorui Zhu
2
Dans un environnement commercial réel, les coûts des faux positifs et les coûts des faux négatifs peuvent être estimés. Ensuite, la classification finale devrait être basée sur un modèle probabiliste et un seuil de classification choisi pour minimiser le coût des fausses classifications. Je ne pense pas vraiment que l'exactitude, ou le score F, ait de nombreuses applications réelles pour le scientifique des données discipliné.
Matthew Drury
Oui, je suis d'accord avec la méthode de la méthode de décision qui minimise le coût de la fausse classification par rapport à la probabilité de coupure et au modèle. Et dans certains cas, un coût asymétrique peut être appliqué à FP et FN. Mais le point de précision et le score F est de vérifier les performances globales d'un modèle ou de comparer les performances de plusieurs modèles. En effet, avec les données en main en tant que data scientist, la minimisation des coûts pourrait toujours être possible. Mais je suis curieux de savoir si le data scientist a en pratique besoin de la distribution (ou variation) de la solution du problème de décision. Je voudrais savoir si vous pourriez en partager avec moi.Thx
Xiaorui Zhu
1
Personnellement, j'évaluerais toujours la qualité de l'ajustement d'un modèle sur la base des probabilités conditionnelles qu'il prédit. Donc, je comparerais toujours les modèles en utilisant une règle de notation appropriée comme la perte de journal, j'utiliserais le bootstrap pour m'assurer que l'amélioration n'est pas du bruit, et peut-être un complément avec AUC.
Matthew Drury
2
Je ne pense pas que ce soit vrai. AUC est spécifiquement conçu pour être insensible au déséquilibre de classe, j'ai fait de nombreuses simulations à ce sujet et j'ai constaté que c'était vrai. De plus, lors de la comparaison des modèles, ils doivent être construits sur des ensembles de données échantillonnés à partir de la même population, ce qui rend tout problème de déséquilibre de classe nul.
Matthew Drury
4

Pour mettre des mots très simples lorsque vous avez un déséquilibre de données, c'est-à-dire que la différence entre le nombre d'exemples que vous avez pour les classes positives et négatives est grande, vous devez toujours utiliser F1-score. Sinon, vous pouvez utiliser des courbes ROC / AUC.

balboa
la source
Votre définition du «déséquilibre des données» est telle que vous utiliseriez presque toujours le score F1, donc ce n'est pas très utile. Peut-être pourriez-vous développer un peu cela?
jbowman
J'avais manqué un mot très important là-bas ... excuses. Modifié ma réponse. Faites-moi savoir si vous avez besoin de plus de précisions.
balboa
1

Pour certains problèmes de classification multi-classes, l'analyse et la visualisation de ROC / AUC n'est pas simple. Vous pouvez examiner cette question, Comment tracer des courbes ROC dans une classification multiclasse? . Dans une telle situation, l'utilisation du score F1 pourrait être une meilleure mesure.

Et le score F1 est un choix courant pour les problèmes de récupération d'informations et populaire dans les milieux industriels. Voici un exemple bien expliqué, la construction de modèles ML est difficile. Les déployer dans des environnements commerciaux réels est plus difficile .

Ling Ma
la source
1

Si l'objectif de la classification est la notation par probabilité, il est préférable d'utiliser l'ASC qui fait la moyenne de tous les seuils possibles. Cependant, si l'objectif de classification a juste besoin de classer entre deux classes possibles et ne nécessite pas la probabilité que chaque classe est prédite par le modèle, il est plus approprié de s'appuyer sur le score F en utilisant un seuil particulier.

Bharat Ram Ammu
la source