Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:2eval:tema07-seleccion-metricas

7.g Selección de métricas

Ahora que vemos visto todas las métricas vamos a explicar cuando usar cada una de ellas.

Las 4 métricas básicas nos da información específicas de aspectos distintos de nuestro modelo:

$$ \begin{array} \\ Precisión&=&P(Enfermo|Positivo) \\ VPN&=&P(Sano|Negativo) \\ Sensibilidad&=&P(Positivo|Enfermo) \\ Especificidad&=&P(Negativo|Sano) \end{array} $$

Pero con las métricas de este tema lo que queremos es resumir en un único número el rendimiento de nuestro modelo. Sin embargo tenemos 11 métricas distintas que pretenden resumir en único número el rendimiento de nuestro modelo:Informedness, Balanced Accuracy, Prevalence threshold (PT), ROC-AUC, Accuracy, Matthews correlation coefficient (MCC), Markedness, Jaccard, F1-score, Fowlkes-Mallows (FM) y PR-AUC

¿Qué métrica elegir? La métrica a elegir depende de lo queramos saber (o no sabemos) de nuestro modelo.

Métricas independientes de la prevalencia

Con las métricas independientes de la prevalencia lo que pretendemos es tener un único valor que resuma nuestro modelo pero sin tener en cuenta la prevalencia de nuestros datos. Eso son condiciona a que solo podemos usar métricas que usen únicamente la sensibilidad ( o 1-sensibilida) y especificidad (o 1-especificidad) en la fórmula. El resto de métricas no podremos usarlas ya para calcular su valor tenemos que saber la prevalencia.

Pero, ¿Cómo es posible que no sepamos la prevalencia? Si la podemos calcular con: $$ Prevalencia=\frac{TP+FN}{TP+FN+FP+TN} $$

Vale, esa es la prevalencia de nuestro datos pero puede ser que en la realizad haya otra prevalencia que no sepamos. También puede pasar que haya distintas prevalencias.

Imaginemos un modelo de IA que en base a una foto detecta si una persona está infectada de la malaria. En cada país la prevalencia es muy distinta. Podemos verlo en el siguiente mapa mundial:

¿Qué prevalencia usamos para evaluar como de bueno es nuestro modelo? Si no sabemos en que país va a usarse el modelo de IA no podremos saber la prevalencia de los datos. En este caso tenemos que restringirnos a usar únicamente a métricas que no dependan de la prevalencia.

Pero , por ejemplo si supiéramos que nuestro modelo lo vamos a usar e Argelia si que ya sabríamos la prevalencia y entonces no usaríamos estas métricas. Porque estas métricas son unas métricas muy pobres al no tener en cuenta la prevalencia. Así que solo las usamos cuando no tenemos ni idea de la prevalencia.

La siguiente pregunta es ¿Cuál de las 3 métricas usamos? Recordar que son solo 3 métricas ya que $Informedness \; normalizado$ es exactamente igual a $Balanced Accuracy$

La siguiente gráfica nos puede ayudar a resolver el problema:

Lo primero que hay que notar es que las métricas se portan distinto según el valor de $Informedness \; normalizado$.
  • Si $Informedness \; normalizado<0.5$ se comportan de una forma.
  • Si $Informedness \; normalizado>0.5$ se comportan de otra forma.
  • Si $Informedness \; normalizado=0$ se comporta de una forma "média entre las 2".

Tambien se puede hace el mismo cálculo con el valor de $Informedness=Sensibilidad+Expecificidad-1$ pero en este caso el umbral de cambio sería en $0$. Esta última fórmula es la que se suele usar en la literatura científica.

Todo ésto se puede ver mejor en la gráfica de

Según el valor de $Informedness \; normalizado$ las 2 curvas de $VPP$ y $VPN$ son cóncavas o convexas o rectas.

  • Si $Informedness \; normalizado<0.5$ las curvas de VPP y VPN son convexas
  • Si $Informedness \; normalizado>0.5$ las curvas de VPP y VPN son cóncavas
  • Si $Informedness \; normalizado=0$ las curvas de VPP y VPN son lineas rectas.

Esta diferencia es importante porque normalmente no tenemos valores de sensibilidad y especificidad tan bajos como para que $Informedness \; normalizado \leq 0.5$ así que solo nos interesan las gráficas que cumplen $Informedness \; normalizado>0.5$. Es decir que no nos interesa ver como se comportan en redes muy malas.

Vemos que las gráficas están pintadas de 2 colores, azules y grises. Las gráficas grises con aquellas cuyo $Informedness \; normalizado \leq 0.5$ y no son interesan ya que tienen un rendimiento demasiado malo. Por otro lado, las gráficas azules son las que nos interesan así que vamos a centrarnos en ellas.

Por ello vamos a volver a pintar la imagen solo con las gráficas que nos interesan:

Veamos que cosas vemos en las gráficas:

  • Como era de esperar las 3 métricas son independientes de la prevalencia.
  • $ROC{\text -}AUC$ es la métrica que tiene siempre mayor valor de las 3 métricas
  • $1-PR$ es la métrica que casi siempre tiene menor valor de las 3 métricas
  • Por último $nInformedness$ tiene un valor intermedio.

Vale, pero ¿cual deberíamos usar?. Recordemos el $f1{\text -}score$ que nos gustaba porque en caso de que fueran valores distintos la media geométrica era menor que la aritmética. Pues si $nInformedness$ es la media aritmética de $Sensibilida$ y $Especificidad$. ¿Queremos usar $ROC{\text -}AUC$ que siempre da una valor superior a la media de ? Sinceramente NO. Por ello no recomiendo usar $ROC{\text -}AUC$

Pues hay otra característica de $1-PR$ y resulta que no es simétrica. Es decir que no tiene el mismo valor si $Sensibilida=a \; {\text y} \; Especificidad=b$ que si $Sensibilida=b \; {\text y} \; Especificidad=a$. Y para casos de $Informedness \; normalizado>0.5$ se da que $1-PR$ tiende a dar mayores valores si la $Especificidad$ es mayor que la sensibilidad y menores al contrario. Por ello es una métrica que tampoco me parece buena ya que en estos casos quiero una media simétrica respecto a los valores de $Sensibilidad$ y $Especificidad$. Aunque podría ser interesante si interesa elegir aquel modelo de IA que tenga una mayor $Especificidad$.

Así que la conclusión es que en general la mejor media para Métricas independientes de la prevalencia es:$Informedness \; normalizado$ $$Informedness \; normalizado=\frac{Sensibilidad+Especificidad}{2}$$

Métricas de rendimiento global

Con las métricas de rendimiento global lo que pretendemos es obtener también un único número para medir el rendimiento pero también teniendo en cuenta la prevalencia de los datos. Es decir que las métricas que vamos a usar no solo vamos a usar la sensibilidad sino también la especificidad.

En la siguiente figura podemos ver las 3 métricas para distintas especificidades, sensibilidades y prevalencias.

Al igual que con las anteriores métricas, no nos interesan aquellas con $nInformedness$ menor o igual a $0,5$ porque son modelos demasiado malos. Por lo que mostremos ahora la figura con las gráficas que nos intersan.

La primera métrica que vamos a descartar es la $Accuracy$, que como ya vimos es una métrica que es una linea recta entre especificidad y sensibilidad en función de la prevalencia por lo que en valores extremos de prevalencia , descarta uno de los dos valores (especificidad o sensibilidad). Por ello no "vale" como un resumen de los tres valores (sensibilidad, especificidad, prevalencia)

Las dos métricas que nos quedan son $MCC$ y $Markedness$, ¿Cuál elegimos? Pues vemos como comentamos con el $ROC-AUC$ no me gustan las métricas que dan valores mayores que la media.

En esta figura vamos a analizar la relación entre $nMCC$ y $nMarkedness$:

  • En la primera fila se muestra la relación entre $nMCC$ y $nMarkedness$ pero para todos los valores de sensibilidad y especificidad es decir el rango $[0-1]$. Como podemos ver no hay una gran correlación entre ellas.
  • En la segunda fila hemos eliminado los valores extremos de $0$ y $1$ en la sensibilidad y especificidad es decir el rango $]0-1[$ y la relación es un poco más lineal.
  • En la tercera fila lo hemos restringido aun más y solo lo hemos hecho para valores de sensibilidad y especificidad mayores que $0.5$ es decir el rango $]0.5-1[$ y ahora se da una cosa curiosa que pasamos a comentar.

Como en el el caso de $ROC-AUC$, no me parece una buena métrica cuando da valores mayores que la media. En nuestro caso la media del $VPP$ y $VPN$ es $nMarkedness$. Y vemos en la tercera fila la diferencia entre $nMCC$ y $nMarkedness$. Si esa diferencia es positiva , significa que $nMCC$ es mayor que $nMarkedness$ y eso no hace que sea una buena métrica. Pero ¿cuantas veces ocurre eso? Pues $P(nMCC>nMarkedness)=0.73$ así que es mejor no usar $nMCC$ si nuestro modelo tiene sensibilidad y especificidad mayores que $0.5$ que es lo normal.

Por ello mi recomendación es quedarnos con $nMarkedness$ con el extra de que además es más sencilla de interpretar al ser la media aritmética entre $VPP$ y $VPN$

Así que la conclusión es que en general la mejor media para Métricas de rendimiento global es:$nMarkedness$

$$nMarkedness=\frac{VPP+VPN}{2}$$

Métricas para datos desbalaceados

El último grupo de métricas que vamos a ver son las métrica para datos desbalanceados. Datos desbalanceados significa con prevalencias muy pequeñas o muy grandes aunque nos vamos a limitar a hablar cuando la prevalencia tiene un valor muy pequeño.

Se podría hacer el mismo análisis en vez de para prevalencias muy pequeñas , para prevalencias muy grandes y crear métricas simétricas pero no se hace nunca porque es más sencillo intercambiar el significado de los positivos de los negativos y seguir usando las mismas métricas de prevalencias muy pequeñas.

¿Y que entendemos por prevalencias muy pequeñas? Veamos un ejemplo de prevalencia muy pequeña. El cancer de mama tiene una prevalencia de unos 144 casos de cada 100.000 (fuente: Cancer de mama es España) . Es decir que la prevalencia es:

$$ Prevalencia=\frac{Enfermos}{Casos \; Totales}=\frac{144}{100.000}=0,0014 $$

Eso es lo que queremos decir con una prevalencia muy pequeña, pero en otros problemas podría ser aun mucho más pequeña.

Ahora que sabemos lo que es una prevalencia muy pequeña (datos desbalanceados) nos debemos preguntar ¿porqué necesitamos nuevas métricas para prevalencias muy pequeñas (es decir métricas para datos desbalanceados)?

Para responder esta pregunta vamos a suponer un modelo ideal pero con una prevalencia tan tan pequeña que va a ser cero.

Un modelo ideal va a tener: $$ \begin{array} \\ Sensibilidad&=&1 \\ Especificidad&=&1 \end{array} $$

Pero como hemos dicho: $$ Prevalencia=0 $$

Ahora calculemos los valores de $VPP$ y $VPN$

$$ Precisión=VPP=\frac{Sensibilidad*Prevalencia}{Sensibilidad*Prevalencia+(1-Especificidad)*(1-Prevalencia)}=\frac{1*0}{1*0+(1-1)*(1-0)}=0 $$

$$ VPN=\frac{Especificidad*(1-Prevalencia)}{Especificidad*(1-Prevalencia)+(1-sensibilidad)*Prevalencia}=\frac{1*(1-0)}{1*(1-0)+(1-1)*0}=1 $$

Por último vamos a ver los valores de $Accuracy$, $nMCC$ y $nMarkedness$

$$ Accuracy=Especificidad+(Sensibilidad-Especificidad) \cdot Prevalencia=1+(1-1)*0=1 $$

$$ MCC=\frac{Sensibilidad+Especificidad-1}{\sqrt{ \frac{Prevalencia}{1-Prevalencia} Sensibilidad - Especificidad +1} \cdot \sqrt{ \frac{1-Prevalencia}{Prevalencia} Especificidad - Sensibilidad +1}}=\frac{1+1-1}{\sqrt{\frac{0}{1} \cdot 1-1+1}*\sqrt{ \frac{1}{0} \cdot 1-1+1 }}=\frac{1}{\infty}=0 $$

$$ MMC \; normalizado=nMMC=\frac{MMC+1}{2}=\frac{0+1}{2}=0,5 $$

$$ Markedness \; Normalizado=nMarkedness=\frac{Markedness+1}{2}=\frac{VPP+VPN}{2}=\frac{0+1}{2}=0,5 $$

Resumiendo, para un modelo "ideal" con $Sensibilidad=1$ y $Especificidad=1$ y $Prevalencia=0$ nuestras métricas de rendimiento global son: $$ \begin{array} \\ Accuracy&=&1 \\ nMMC&=&0,5 \\ nMarkedness&=&0,5 \end{array} $$

¿No veis que son un poco raros los resultados? La $Accuracy$ nos dice que es un modelo perfecto al ser la $Prevalencia=0$ y $Especificidad=1$ pero $VPP$ sale malísimo, mientras que $nMCC$ y $nMarkedness$ nos dice que nuestro modelo no es mejor que al azar. Son resultados que no tienen mucho sentido, aunque matemáticamente son todos correctos.

¿Qué ha ocurrido? ¿Qué va mal? Pues resulta que en casos de datos desbalanceados (prevalencia muy pequeña) no nos importa los verdaderos negativos $TN$ porque lo fácil es decir para el modelo que siempre es negativo y acertará prácticamente siempre porque hay muy pocos positivos, pero eso no es lo que nos interesa. Así que nos interesan nuevas métricas que para calcularlas no se usen los $TN$.

Resumiendo:

  • $TP$: Habrá muy poco pero si los hay, queremos que los detecte
  • $FN$: Siempre nos interesa tener en cuenta los errores y por lo tanto que tengan un valor pequeño
  • $FP$: Siempre nos interesa tener en cuenta los errores y por lo tanto que tengan un valor pequeño
  • $TN$: No nos interesa su valor porque seguro que es muy alto y eso contamina el resultado de las métricas del rendimiento global

Pues justamente eso es lo que hacen las métricas para datos desbalaceados ( No tienen en cuenta los verdaderos negativos $TN$)

Y ahora que hemos explicado que necesitamos nuevas métricas, ¿Cuál debemos usar? Empecemos viendo las fórmulas de las 3 primeras métricas:

$$ \begin{array} \\ Indice \; Jaccard&=&\frac{TP}{TP+FN+FP} \\ F_1{\text -}score&=&\frac{TP}{\frac{(TP+FN)+(TP+FP)}{2}} \\ Fowlkes-Mallows&=&\frac{TP}{\sqrt{(TP+FN)*(TP+FP)}} \end{array} $$

Las tres métricas tienen en común el numerador que es $TP$ y en el denominador también tienen en común que solo usan $TP$ , $FN$ y $FP$. Sin embargo difieren entre ellos en como calculan el denominador.

clase/iabd/pia/2eval/tema07-seleccion-metricas.txt · Última modificación: 2024/11/20 21:45 por admin