Quelles sont les valeurs correctes pour la précision et le rappel dans les cas de bord?


20

La précision est définie comme:

p = true positives / (true positives + false positives)

Est - il exact que, true positiveset false positivesapproche 0, la précision approche 1?

Même question pour rappel:

r = true positives / (true positives + false negatives)

J'implémente actuellement un test statistique où j'ai besoin de calculer ces valeurs, et parfois il arrive que le dénominateur soit 0, et je me demande quelle valeur retourner pour ce cas.

PS: Excusez la balise inappropriée, je voulais l'utiliser recall, precisionet limit, mais je ne peux pas encore créer de nouvelles balises.

precision-recall  data-visualization  logarithm  references  r  networks  data-visualization  standard-deviation  probability  binomial  negative-binomial  r  categorical-data  aggregation  plyr  survival  python  regression  r  t-test  bayesian  logistic  data-transformation  confidence-interval  t-test  interpretation  distributions  data-visualization  pca  genetics  r  finance  maximum  probability  standard-deviation  probability  r  information-theory  references  computational-statistics  computing  references  engineering-statistics  t-test  hypothesis-testing  independence  definition  r  censoring  negative-binomial  poisson-distribution  variance  mixed-model  correlation  intraclass-correlation  aggregation  interpretation  effect-size  hypothesis-testing  goodness-of-fit  normality-assumption  small-sample  distributions  regression  normality-assumption  t-test  anova  confidence-interval  z-statistic  finance  hypothesis-testing  mean  model-selection  information-geometry  bayesian  frequentist  terminology  type-i-and-ii-errors  cross-validation  smoothing  splines  data-transformation  normality-assumption  variance-stabilizing  r  spss  stata  python  correlation  logistic  logit  link-function  regression  predictor  pca  factor-analysis  r  bayesian  maximum-likelihood  mcmc  conditional-probability  statistical-significance  chi-squared  proportion  estimation  error  shrinkage  application  steins-phenomenon 

Je ne pense pas que nous ayons besoin d'une étiquette de limite.

Vraisemblablement, vous essayez de quantifier les performances d'une procédure de diagnostic; y a-t-il une raison pour laquelle vous n'utilisez pas une métrique de théorie de détection de signal appropriée comme d ', A' ou une zone sous la courbe ROC?
Mike Lawrence

3
@Mike, la précision et le rappel sont des mesures d'évaluation courantes dans, par exemple, la récupération d'informations où ROC, ou en particulier la spécificité est difficile à utiliser car vous vous attendez déjà à un nombre élevé de faux positifs.
user979

Réponses:


17

Étant donné une matrice de confusion:

            predicted
            (+)   (-)
            ---------
       (+) | TP | FN |
actual      ---------
       (-) | FP | TN |
            ---------

nous savons que:

Precision = TP / (TP + FP)
Recall = TP / (TP + FN)

Considérons les cas où le dénominateur est nul:

  • TP + FN = 0: signifie qu'il n'y a eu aucun cas positif dans les données d'entrée
  • TP + FP = 0: signifie que toutes les instances ont été prédites comme négatives

9
Extension de votre réponse: si TP = 0 (comme dans les deux cas), le rappel est 1, car la méthode n'a découvert aucun vrai positif; la précision est 0 s'il y a un FP et 1 sinon.

11

La réponse est oui. Les cas de bord indéfinis se produisent lorsque les vrais positifs (TP) sont à 0 car c'est dans le dénominateur des deux P & R. Dans ce cas,

  • Rappel = 1 lorsque FN = 0, puisque 100% des TP ont été découverts
  • Précision = 1 lorsque FP = 0, car non, il n'y a pas eu de faux résultats

Il s'agit d'une reformulation du commentaire de @ mbq.


3

Je connais différentes terminologies. Ce que vous appelez la précision serait une valeur prédictive positive (PPV). Et ce que vous appelez rappel, j'appellerais la sensibilité (Sens). :

http://en.wikipedia.org/wiki/Receiver_operating_characteristic

Dans le cas de la sensibilité (rappel), si le dénominateur est nul (comme le souligne Amro), il n'y a PAS de cas positifs, donc la classification n'a pas de sens. (Cela n'empêche pas TP ou FN d'être nul, ce qui entraînerait une sensibilité limite de 1 ou 0. Ces points sont respectivement dans les coins supérieurs droit et inférieur gauche de la courbe ROC - TPR = 1 et TPR = 0. )

La limite de PPV est cependant significative. Il est possible que la coupure du test soit réglée à un niveau si élevé (ou bas) de sorte que tous les cas soient prédits comme négatifs. C'est à l'origine de la courbe ROC. La valeur limite du PPV juste avant que la coupure n'atteigne l'origine peut être estimée en considérant le dernier segment de la courbe ROC juste avant l'origine. (Cela peut être préférable de modéliser car les courbes ROC sont notoirement bruyantes.)

Par exemple, s'il y a 100 positifs réels et 100 négatifs réels et que le segment final de la courbe ROC s'approche de TPR = 0,08, FPR = 0,02, alors le PPV limite serait PPR ~ 0,08 * 100 / (0,08 * 100 + 0,02 * 100 ) = 8/10 = 0,8 soit 80% de probabilité d'être un vrai positif.

En pratique, chaque échantillon est représenté par un segment sur la courbe ROC - horizontal pour un réel négatif et vertical pour un réel positif. On pourrait estimer la PPV limite par le tout dernier segment avant l'origine, mais cela donnerait une PPV limite estimée de 1, 0 ou 0,5, selon que le dernier échantillon était un vrai positif, un faux positif (négatif réel) ou fait d'un TP et FP égal. Une approche de modélisation serait préférable, en supposant peut-être que les données sont binormales - une hypothèse courante, par exemple: http://mdm.sagepub.com/content/8/3/197.short


1

Cela dépend de ce que vous entendez par "approche 0". Si les faux positifs et les faux négatifs approchent tous les deux de zéro à un rythme plus rapide que les vrais positifs, alors oui aux deux questions. Mais sinon, pas nécessairement.


Je ne connais vraiment pas le tarif. Pour être honnête, tout ce que je sais, c'est que mon programme s'est écrasé avec une division par zéro et que je dois gérer ce cas d'une manière ou d'une autre.
Björn Pollex
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.