Je travaille avec des données déséquilibrées, où il y a environ 40 cas class = 0 pour chaque classe = 1. Je peux raisonnablement faire la distinction entre les classes en utilisant des fonctionnalités individuelles, et la formation d'un classificateur naïf Bayes et SVM sur 6 fonctionnalités et des données équilibrées a donné une meilleure discrimination (courbes ROC ci-dessous).
C'est bien, et je pensais que j'allais bien. Cependant, la convention pour ce problème particulier est de prévoir les coups à un niveau de précision, généralement entre 50% et 90%. par exemple "Nous avons détecté un certain nombre de hits avec une précision de 90%." Lorsque j'ai essayé cela, la précision maximale que je pouvais obtenir des classificateurs était d'environ 25% (ligne noire, courbe PR ci-dessous).
Je pourrais comprendre cela comme un problème de déséquilibre de classe, car les courbes PR sont sensibles au déséquilibre et les courbes ROC ne le sont pas. Cependant, le déséquilibre ne semble pas affecter les fonctionnalités individuelles: je peux obtenir une précision assez élevée en utilisant les fonctionnalités individuelles (bleu et cyan).
Je ne comprends pas ce qui se passe. Je pourrais le comprendre si tout fonctionnait mal dans l'espace PR, car, après tout, les données sont très déséquilibrées. Je pourrais également comprendre si les classificateurs semblaient mauvais dans l' espace ROC et PR - peut-être que ce sont juste de mauvais classificateurs. Mais que se passe-t-il pour rendre les classificateurs meilleurs selon le ROC, mais pires selon le Precision-Recall ?
Edit : J'ai remarqué que dans les zones à faible TPR / Rappel (TPR entre 0 et 0,35), les caractéristiques individuelles surpassent constamment les classificateurs dans les courbes ROC et PR. Peut-être que ma confusion est due au fait que la courbe ROC "met l'accent" sur les zones à TPR élevé (où les classificateurs fonctionnent bien) et la courbe PR met l'accent sur le TPR bas (où les classificateurs sont pires).
Edit 2 : La formation sur les données non équilibrées, c'est-à-dire avec le même déséquilibre que les données brutes, a redonné vie à la courbe PR (voir ci-dessous). Je suppose que mon problème était de mal former les classificateurs, mais je ne comprends pas totalement ce qui s'est passé.
la source
La meilleure façon d'évaluer un modèle est de voir comment il sera utilisé dans le monde réel et de développer une fonction de coût.
En passant, par exemple, on met trop l'accent sur r au carré, mais beaucoup pensent que c'est une statistique inutile. Alors ne vous laissez pas accrocher à une statistique.
Je soupçonne que votre réponse est un exemple du paradoxe de l'exactitude.
https://en.m.wikipedia.org/wiki/Accuracy_paradox
Le rappel (également connu sous le nom de sensibilité, ou taux positif réel) est la fraction des instances pertinentes qui sont récupérées.
tpr = tp / (tp + fn)
La précision (ou valeur prédictive positive) est la fraction des instances récupérées qui sont pertinentes.
ppv = tp / (tp + fp)
Disons que vous avez un ensemble très déséquilibré de 99 positifs et un négatif.
Disons qu'un modèle est formé dans lequel le modèle dit que tout est positif.
tp = 99 fp = 1 ppv devient 0,99
Clairement un modèle indésirable malgré la "bonne" valeur prédictive positive.
Je recommande de créer un ensemble d'entraînement plus équilibré par le biais d'un suréchantillonnage ou d'un sous-échantillonnage. Une fois le modèle construit, utilisez un ensemble de validation qui conserve le déséquilibre d'origine et créez un graphique de performances à ce sujet.
la source
Puis-je simplement souligner que c'est en fait l'inverse: ROC est sensible au déséquilibre de classe tandis que PR est plus robuste lorsqu'il s'agit de distributions de classe asymétriques. Voir https://www.biostat.wisc.edu/~page/rocpr.pdf .
Ils montrent également que "les algorithmes qui optimisent la zone sous la courbe ROC ne garantissent pas d'optimiser la zone sous la courbe PR".
la source