Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
clase:iabd:pia:2eval:tema07-seleccion-metricas [2024/11/18 23:29] admin [Métricas independientes de la prevalencia] |
— (actual) | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== 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& | ||
- | \\ | ||
- | VPN& | ||
- | \\ | ||
- | Sensibilidad& | ||
- | \\ | ||
- | Especificidad& | ||
- | \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: | ||
- | |||
- | ¿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. | ||
- | * [[.tema07.metricas_derivadas# | ||
- | * [[.tema07.metricas_derivadas# | ||
- | * [[.tema07.metricas_derivadas# | ||
- | * [[.tema07.metricas_derivadas# | ||
- | |||
- | Pero, ¿Cómo es posible que no sepamos la prevalencia? | ||
- | $$ | ||
- | 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 Informednessnormalizado es exactamente igual a BalancedAccuracy | ||
- | |||
- | La siguiente gráfica nos puede ayudar a resolver el problema: | ||
- | |||
- | {{: | ||
- | |||
- | |||
- | <note warning> | ||
- | Lo primero que hay que notar es que las métricas se portan distinto según el valor de Informednessnormalizado. | ||
- | * Si Informednessnormalizado<0.5 se comportan de una forma. | ||
- | * Si Informednessnormalizado>0.5 se comportan de otra forma. | ||
- | * Si Informednessnormalizado=0 se comporta de una forma " | ||
- | |||
- | 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 Informednessnormalizado las 2 curvas de VPP y VPN son cóncavas o convexas o rectas. | ||
- | * Si Informednessnormalizado<0.5 las curvas de VPP y VPN son convexas | ||
- | * Si Informednessnormalizado>0.5 las curvas de VPP y VPN son cóncavas | ||
- | * Si Informednessnormalizado=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 Informednessnormalizado≤0.5 así que solo nos interesan las gráficas que cumplen Informednessnormalizado>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 Informednessnormalizado≤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-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-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-AUC que siempre da una valor superior a la media de ? Sinceramente **NO**. Por ello no recomiendo usar ROC-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=ayEspecificidad=b que si Sensibilida=byEspecificidad=a. Y para casos de Informednessnormalizado>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. | ||
- | |||
- | <color red>Así que la conclusión es que en general la mejor media para Métricas independientes de la prevalencia es:</ | ||
- | Informednessnormalizado=Sensibilidad+Especificidad2 | ||
- | |||
- | |||
- | ===== 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. | ||
- | * [[# | ||
- | * [[#Matthews correlation coefficient (MCC)]] | ||
- | * [[# | ||
- | |||
- | En la siguiente figura podemos ver las 3 métricas para distintas especificidades, | ||
- | {{: | ||
- | |||
- | 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 " | ||
- | |||
- | Las dos métricas que nos quedan son MCC y Markedness, | ||
- | * Para Informednessnormalizado>0.5 en general el valor del MCC es mayor que el de Markedness | ||
- | * Cuando Markedness es mayor que MCC su diferencia es menor que cuando es al reves. | ||
- | * Para prevalencia no extremás [0.05−0.95], | ||
- | |||
- | Por ello mi recomendación es quedarnos con aquella que sea más sencilla de interpretar y además que sea igual o menos que la media aritmética, | ||
- | |||
- | Además que más fácil explicar le media aritmética entre VPP y VPN que explicar el coeficiente de correlación de Pearson. | ||
- | |||
- | |||
- | <color red>Así que la conclusión es que en general la mejor media para Métricas de rendimiento global es:</ | ||
- | |||
- | Markedness=VPP+VPN2 | ||
- | |||
- | ===== 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. | ||
- | |||
- | <note tip> | ||
- | 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: {{ : | ||
- | |||
- | $$ | ||
- | Prevalencia=\frac{Enfermos}{Casos \; Totales}=\frac{144}{100.000}=0, | ||
- | $$ | ||
- | |||
- | 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& | ||
- | \\ | ||
- | Especificidad& | ||
- | \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, | ||
- | $$ | ||
- | |||
- | $$ | ||
- | Markedness \; Normalizado=nMarkedness=\frac{Markedness+1}{2}=\frac{VPP+VPN}{2}=\frac{0+1}{2}=0, | ||
- | $$ | ||
- | |||
- | Resumiendo, para un modelo " | ||
- | $$ | ||
- | \begin{array} | ||
- | \\ | ||
- | Accuracy& | ||
- | \\ | ||
- | nMMC& | ||
- | \\ | ||
- | nMarkedness& | ||
- | \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 es Especificidad=1 pero el VPP era cero, 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 // | ||
- | |||
- | Pues justamente eso es lo que hacen las métricas para datos desbalaceados ( No tienen en cuenta los verdaderos negativos TN) | ||
- | * [[# | ||
- | * [[# | ||
- | * [[# | ||
- | * [[#PR-AUC]] | ||
- | |||
- | 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& | ||
- | \\ | ||
- | F_1{\text -}score& | ||
- | \\ | ||
- | Fowlkes-Mallows& | ||
- | \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. |