¿Cuáles son los valores correctos para precisión y recuperación cuando los denominadores son iguales a 0?

16

La precisión se define como:

p = verdaderos positivos / (verdaderos positivos + falsos positivos)

¿Cuál es el valor de precisión si (verdaderos positivos + falsos positivos) = 0? ¿Es solo indefinido?

La misma pregunta para recordar:

r = verdaderos positivos / (verdaderos positivos + falsos negativos)

En este caso, ¿cuál es el valor de recordar si (verdaderos positivos + falsos negativos) = 0?

PD Esta pregunta es muy similar a la pregunta ¿Cuáles son los valores correctos para precisión y recuperación en casos extremos? .

Raffi Khatchadourian
fuente
1
Je, incluso se responde por duplicado; Pero vamos a llamarlo un buen duplicado.

Respuestas:

9

Las respuestas a la pregunta anterior vinculada también se aplican aquí.

Si (verdaderos positivos + falsos negativos) = 0, entonces no hay casos positivos en los datos de entrada, por lo que cualquier análisis de este caso no tiene información, por lo que no hay conclusión sobre cómo se manejan los casos positivos. Desea N / A o algo similar como resultado de la relación, evitando una división por cero error

Si (verdaderos positivos + falsos positivos) = 0, se ha predicho que todos los casos serán negativos: este es un extremo de la curva ROC. Nuevamente, desea reconocer e informar esta posibilidad mientras evita una división por cero error.

Enrique
fuente
Gracias Henry por la respuesta. Si entiendo correctamente, en el primer caso, no desea reconocer e informar el resultado, mientras que en el último caso lo hace . ¿Es eso correcto?
Raffi Khatchadourian
Sí: en el caso de no-positivos-en-entrada, la precisión no tiene sentido; en el caso sin predicción positiva, desea informar que la prueba se ha configurado como extremadamente negativa.
Henry
5

Aquí se ofrece una respuesta interesante: https://github.com/dice-group/gerbil/wiki/Precision,-Recall-and-F1-measure

Los autores del módulo obtuvieron diferentes puntajes de precisión y recuerdo dependiendo de si los verdaderos positivos, falsos positivos y falsos negativos son todos 0. Si lo son, el resultado es aparentemente bueno.

En algunos casos raros, el cálculo de Precisión o Recuperación puede causar una división por 0. Con respecto a la precisión, esto puede suceder si no hay resultados dentro de la respuesta de un anotador y, por lo tanto, los positivos verdaderos y los falsos positivos son 0 Para estos casos especiales, hemos definido que si los verdaderos positivos, falsos positivos y falsos negativos son todos 0, la precisión, la recuperación y la medida F1 son 1. Esto puede ocurrir en casos en los que el estándar de oro contiene un documento sin anotaciones y el anotador (correctamente) no devuelve anotaciones. Si los verdaderos positivos son 0 y uno de los otros dos contadores es mayor que 0, la precisión, la recuperación y la medida F1 son 0.

No estoy seguro de si este tipo de puntuación sería útil en otras situaciones fuera de su caso especial, pero vale la pena pensarlo.

shiri
fuente
1

Al evaluar un clasificador en umbrales altos, la precisión (a menudo en realidad) no puede ser 1 cuando la recuperación es 0. ¡Generalmente es N / A! Creo que hay algo mal en cómo la gente traza la curva P / R. Evitar muestras N / A es un sesgo en el sentido de que evita las muestras de singularidad. Calculé el wrt de precisión promedio para el recuerdo promedio ignorando las muestras N / A y nunca obtuve un clasificador comenzando en el recuerdo 1 por 0 para una red neuronal poco profunda en la detección de objetos. Esto también fue cierto para las curvas calculadas con los números tp, fp, fn. Es bastante fácil de verificar con papel y lápiz con una sola imagen. Por ejemplo: tengo un clasificador que genera una sola imagen: preds = [. 7 .6 .5 .1 .05] verdad = [nynny] Al calcular las matrices de confusión con los distintos umbrales tenemos: tp = [2 1 1 1 0 0], fn = [0 1 1 1 2 2], fp = [3 3 2 1 1 0]. la recuperación rec = [1 .5 .5 .5 0 0], y la precisión = [. 4 .25 1/3 .5 0 NaN]. No veo cómo tendría sentido reemplazar un NaN o la precisión (@ recordar == 0) con 1. 1 debería ser un límite superior, no un valor con el que reemplazamos la precisión (@ recordar == 0).

Jonathan Blanchette
fuente