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!
la source
Formule de calcul:
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é.
la source
Les réponses ci-dessus sont toutes les deux bonnes.
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,
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.
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.
la source
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.
la source
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 .
la source
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.
la source