18 votos

Precisión frente al área bajo la curva ROC

He construido una curva ROC para un sistema de diagnóstico. El área bajo la curva se estimó de forma no paramétrica como AUC = 0,89. Cuando intenté calcular la precisión en el ajuste óptimo del umbral (el punto más cercano al punto (0, 1)), obtuve que la precisión del sistema de diagnóstico era de 0,8, ¡que es menor que el AUC! Cuando comprobé la precisión con otro ajuste de umbral que está muy lejos del umbral óptimo, obtuve una precisión de 0,92. ¿Es posible que la precisión de un sistema de diagnóstico con el mejor ajuste de umbral sea menor que la precisión con otro umbral y también menor que el área bajo la curva? Vea la imagen adjunta, por favor.

enter image description here

1 votos

¿Podría indicar cuántas muestras había en su análisis? Apuesto a que estaba muy desequilibrado. Además, el AUC y la precisión no se traducen así (cuando dices que la precisión es menor que el AUC), en absoluto.

1 votos

269469 son negativos y 37731 son positivos; este podría ser el problema aquí según las respuestas de abajo (el desequilibrio de clases).

0 votos

Hay que tener en cuenta que el problema no es el desequilibrio de clases en sí, sino la elección de la medida de evaluación. En definitiva, $AUC$ es más razonable en este escenario, o se podría implementar una precisión equilibrada.

11voto

ssn Puntos 472

Bien, recuerda la relación entre el $FPR$ (Tasa de falsos positivos), $TPR$ (tasa de verdaderos positivos) y $ACC$ (Precisión):

$$TPR = \frac{\sum \text{True positive}}{\sum \text{Positive cases}}$$

$$FPR = \frac{\sum \text{False positive}}{\sum \text{Negative cases}}$$

$$ACC = \frac{TPR \cdot \sum \text{Positive cases} + (1-FPR) \cdot \sum \text{Negative cases}}{\sum \text{Positive cases} + \sum \text{Negative cases}}$$

Así que, $ACC$ puede representarse como una media ponderada de $TPR$ y $FPR$ . Si el número de negativos y positivos es el mismo:

$$ACC = \frac{TPR + 1 - FPR}{2}$$

Pero, ¿y si $N_- \gg N_+$ ? Entonces: $$ACC(N_- \gg N_+) \approx 1-FPR$$ Así que, en este caso, el máximo $ACC$ se produce al mínimo $FPR$


Véase este ejemplo, los negativos superan en número a los positivos 1000:1.

data = c(rnorm(10L), rnorm(10000L)+1)
lab = c(rep(1, 10L), rep(-1, 10000L))
plot(data, lab, col = lab + 3)
tresh = c(-10, data[lab == 1], 10)
do.call(function(x) abline(v = x, col = "gray"), list(tresh))

pred = lapply(tresh, function (x) ifelse(data <= x, 1, -1))
res = data.frame(
  acc = sapply(pred, function(x) sum(x == lab)/length(lab)),
  tpr = sapply(pred, function(x) sum(lab == x & x == 1)/sum(lab == 1)),
  fpr = sapply(pred, function(x) sum(lab != x & x == 1)/sum(lab != 1))
)

res[order(res$acc),]

#> res[order(res$acc),]
#           acc tpr    fpr
#12 0.000999001 1.0 1.0000
#11 0.189110889 1.0 0.8117
#9  0.500099900 0.9 0.5003
#2  0.757742258 0.8 0.2423
#5  0.763136863 0.7 0.2368
#4  0.792007992 0.6 0.2078
#10 0.807292707 0.5 0.1924
#3  0.884215784 0.4 0.1153
#7  0.890709291 0.3 0.1087
#6  0.903096903 0.2 0.0962
#8  0.971428571 0.1 0.0277
#1  0.999000999 0.0 0.0000

Mira, cuando fpr es 0 acc es máxima.

Y aquí está el ROC, con la precisión anotada.

plot(sort(res$fpr), sort(res$tpr), type = "S", ylab = "TPR", xlab = "FPR")
text(sort(res$fpr), sort(res$tpr), pos = 4L, lab = round(res$acc[order(res$fpr)], 3L))
abline(a = 0, b = 1)
abline(a = 1, b = -1)

enter image description here


El $AUC$ es

1-sum(res$fpr[-12]*0.1)
#[1] 0.74608

La conclusión es que se puede optimizar la precisión de una manera que resulte en un modelo falso ( tpr = 0 en mi ejemplo). Eso es porque la precisión no es una buena métrica, la dicotomización del resultado debe dejarse en manos del responsable de la decisión.

Se dice que el umbral óptimo es el $TPR = 1-FPR$ porque así ambos errores tienen el mismo peso, aunque la precisión no sea óptima.

Cuando se tienen clases desequilibradas, la optimización de la precisión puede ser trivial (por ejemplo, predecir todos como la clase mayoritaria).


Otra cosa, no se puede traducir la mayoría de $AUC$ medidas a una estimación de precisión como esa; vea estas preguntas:

Y lo más importante de todo: ¿Por qué el AUC es mayor para un clasificador menos preciso que para uno más preciso?

9voto

Franck Dernoncourt Puntos 2128

Sí que es posible. La clave es recordar que la precisión se ve muy afectada por el desequilibrio de clases. Por ejemplo, en tu caso, tienes más muestras negativas que positivas, ya que cuando el FPR ( $=\frac{FP}{FP+TN}$ ) se acerca a 0, y TPR (= $\frac{TP}{TP+FN}$ ) es 0,5, su precisión ( $= \frac{TP+TN}{TP+FN+FP+TN}$ ) sigue siendo muy alta.

Por decirlo de otra manera, dado que tiene muchas más muestras negativas, si el clasificador predice 0 todo el tiempo, seguirá obteniendo una alta precisión con FPR y TPR cercanos a 0.

Lo que se llama ajuste óptimo del umbral (el punto más cercano al punto (0, 1)) es sólo una de las muchas definiciones de umbral óptimo: no optimiza necesariamente la precisión.

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X