8.c Métricas rendimiento general de clasificación

En este apartado vamos a ampliar las métricas que podemos usar con la clasificación binaria. Las métricas básicas ya las vimos en 8.b Métricas clasificación (Bayes). Pero ahora vamos a ver nuevas métricas que intentan resumir en un único número el rendimiento general de la red neuronal.

Las métricas que vamos a ver están en Matriz de confusión en Wikipedia.

Las métricas que ya las hemos explicado en el tema anterior son:

Métricas básicas (Sensibilidad, Especificidad, FNR , FPR y Prevalencia)

Métricas derivadas según el teorema de bayes (PPV,NPV, FDR y FOR)

Y ahora vamos a explicar las siguiente métricas:

Métricas independientes de la prevalencia: Estas métricas solo usan sensibilidad y especificidad.

Informedness

Balanced Accuracy

Prevalence threshold (PT)

ROC-AUC

Métricas de rendimiento global: Usan la prevalencia además de la sensibilidad y especificidad.

Accuracy

Matthews correlation coefficient (MCC)

Markedness

Métricas para datos desbalaceados: No tienen en cuenta los verdaderos negativos.

Jaccard

F1-score

Fowlkes-Mallows (FM)

PR-AUC

La siguiente pregunta es ¿Que métrica debemos elegir? En el apartado siguiente 8.d Selección de métricas de clasificación vamos a explicar que métrica elegir en cada caso.
En esta página van a salir la media aritmética, la media geométrica o armónica. Para profundizar sobre que es la media se recomienda leer el artículo Qué es la media y cuál usar

Normalización

Hay indices como Matthews correlation coefficient (MCC) que tiene un rango de -1 a 1. Eso nos puede despistar al comparar valores. Así que en estos casos se creará crear un nuevo índice llamado Normalizado para que su rango de valores sea de 0 a 1.

En el caso de rangos de -1 a 1 simplemente habrá que sumar 1 al índice en cuestión y dividirlo entre dos.

Fórmulas

Aunque vamos a ver cada métrica en detalle, a modo de resumen, vamos a ver aquí todas las fórmulas

Métricas independientes de la prevalencia
Nombre	Fórmula
Informedness normalizado
Balanced Accuracy
Prevalence threshold (PT)
ROC-AUC
Métricas de rendimiento global
Nombre	Fórmula
Accuracy
Matthews correlation coefficient normalizado (nMCC)
Markedness
Métricas para datos desbalaceados
Nombre	Fórmula
Jaccard
F1-score
Fowlkes-Mallows (FM)
PR-AUC

Informedness

Este índice pretende resumir los valores de sensibilidad y especificidad (también se puede llamar Indice Youden). Su fórmula es:

Como vemos, es la suma de la sensibilidad más la especificidad menos 1. Eso hace que su rango sea de -1 a 1. En estos caso como ya hemos comentado en ese caso calcularemos el o para que tenga un valor de 0 a 1

Es decir que el es simplemente la media aritmética de sensibilidad y especificidad. El cual no es un mal índice si desconocemos totalmente la prevalencia que nos vamos a encontrar.

Mas información:

Youden's J statistic

Youden-Index for rating diagnostic tests: Explicación del índica Informedness o indice Youden

Para elegir cual es el mejor threshold posible a veces se usa el threshold que genera el mayor valor de Informedness Más información: Youden Index and the optimal threshold for markers with mass at zero: El indice Youden es el máximo Informedness según el threshold

Balanced Accuracy

Realmente esta no es una nueva métrica sino que es la misma que Accuracy pero con una prevalencia del 0.5

Si la fórmula de la en función de la prevalencia es:

Y suponiendo que la prevalencia está balanceada, es decir que

Por eso se llama porque es suponiendo que la prevalencia es . Pero si nos fijamos esta fórmula es exactamente la misma que la de

Prevalence threshold (PT)

El es una métrica un poco extraña ya que lo que nos está diciendo es un valor de la prevalencia.

¿Y un valor de prevalencia es una métrica? Vamos a explicarlo con la siguiente gráfica:

En esta gráfica estamos viendo el valor de la precisión (VPP) en función de la prevalencia. En la gráfica de la izquierda para una y mientras que en la segunda gráfica para y . Además en cada gráfica se ve el valor de una prevalencia que corresponde exactamente con el de Prevalence threshold (PT), en la gráfica izquierda el valor de y en la gráfica de la derecha el valor de . Por ultimo en ambos casos hay una recta que va desde el punto (0,1) al punto (1,0) cuya ecuación es .

Una vez hemos explicado la información que sale en cada una de las gráficas, expliquemos que es el , es simplemente el valor de umbral donde se cortan las curvas de precisión y la recta que va de una esquina a otra. Para demostrarlo simplemente debemos igualar ambas curvas y despejar la prevalencia.

Si igualamos ambas ecuaciones:

Y si despejamos la prevalencia se obtiene:

Despejar la prevalencia paso a paso: Agrupamos y simplificamos términos Sacamos la prevalencia como factor común La fórmula para resolver ecuaciones de segundo grado es: Ahora aplicamos la fórmula Vamos a simplificar la parte izquierda de dentro de la raíz cuadrada: Vamos a simplificar la parte derecha de dentro de la raíz cuadrada: Y ahora vamos a unir las 2 partes de dentro de la raíz cuadrada: Ahora vamos a volver a poner la ecuación entera en la que ya hemos simplificado la parte de la raíz cuadrada. De las 2 soluciones solo nos interesa la que da un prevalencia mayor que cero así que quitamos el y lo dejamos en un Por último cambiamos todo de signo
Demostrar que una fórmula es igual a la otra

Ahora bien, ¿Que tiene de especial esa prevalencia? Pues veámoslo en cada una de las 2 gŕaficas.

Gráfica izquierda: Antes de la prevalencia 0.09, aumentar un poquito la prevalencia, aumenta mucho la precisión, pero después de la prevalencia 0.09, aumentar un poquito la prevalencia aumenta poco la precisión.

Gráfica izquierda:Antes de la prevalencia 0.91, aumentar un poquito la prevalencia, aumenta poco la precisión, pero después de la prevalencia 0.91, aumentar un poquito la prevalencia aumenta mucho la precisión.

Es decir que es el punto en el que cambia la velocidad a la que aumenta la precisión y también podríamos decir que nuestro modelo de IA será útil desde el punto de vista de la precisión a partir de una prevalencia correspondiente a . La explicación formal de todo ello se encuentra en Prevalence threshold (ϕe) and the geometry of screening curves.

Y como vemos para la gráfica de la izquierda, que es una buena red neuronal, el valor de es pequeño y para la gráfica de la derecha, que es una mala red neuronal, el valor de es alto. Pero como nos gustan métricas cuyo valor sea alto cuanto mejor es la red, nosotros vamos a trabajar con

Con lo que la gráfica con la nueva métrica queda ahora así:

Es decir que para:

Podemos ver más ejemplos para diversas sensibilidades y especificidades en la siguiente figura:

Una característica que tiene esta métrica es que no es simétrica. No da lo mismo si intercambiamos los valores de sensibilidad y especificidad

Sensibilidad	Especificidad	1-PT
0,90	0,30	0,53
0,30	0,90	0,63
Sensibilidad	Especificidad	1-PT
0,70	0,50	0,54
0,50	0,70	0,56
Sensibilidad	Especificidad	1-PT
0,90	0,70	0,63
0,70	0,90	0,73

ROC-AUC

La métrica ROC-AUC es el valor del area bajo la curva ROC. La palabra AUC viene de traducir "Area bajo la curva" al inglés "Area Under the Curve" o AUC. Y ROC viene del inglés "Receiver Operating Characteristic".

Vamos primero a explicar como se calcvula la curva ROC. Lo primero es que cuando predecimos que ciertos valores son Positivos o Negativos, lo hacemos en base a un umbral del resultado de la red neuronal (también llamado y_score). Normalmente si el score es menor o igual que 0.5 decimos que es Negativo y si el score es mayor que 0.5 decimos que es Positivo. Pero ese umbral es arbitrario.

La siguiente imagen muestra la distribución de valores que hemos definido como presuntamente Positivos y los presuntamente Negativos. Si superan ese umbral se convierten en Falsos Positivos o Falsos Negativos.

En las siguientes gráficas vamos a ver como afecta a nuestro modelo el variar el umbral.

Vamos a explicar cada columna de la imagen anterior:

1º Columna: Se muestra la distribución de los scores Positivos y los scores Negativos que ha hecho el modelo. Pero según el umbral podrán ser True Positive (TP), True Negative (TN),False Positive (FP) y False Negative (FN)

2º Columna: Se muestra como evolucionan los True Positive (TP), True Negative (TN),False Positive (FP) y False Negative (FN) según se modificara el umbral. Para ello para cada umbral entre 0 y 1:

Se cuenta cuantos Positivos hay bajo el umbral que serán los False Positive (FP)

Se cuenta cuantos Positivos hay sobre el umbral que serán los True Positive (TP)

Se cuenta cuantos Negativos hay bajo el umbral que serán los True Negative (TN)

Se cuenta cuantos Negativos hay sobre el umbral que serán los False Negative (FN)

3º Columna: Se calculan las métricas de True Positive Rate (TPR) y False Positive Rate (FPR) según las siguientes fórmulas:

4º Columna: Muestra el True Positive Rate (TPR) frente a False Positive Rate (FPR). Es decir que cada punto la X de la gráfica es el FPR y la Y de la gráfica es el TPR.

Cada una de las filas de la imagen son predicciones distintas, siendo:

1º Fila: Una predicción perfecta.

2º Fila: Una predicción buena

3º Fila: Una predicción mala en la que falla lo mismo que acierta. Sería como hacerlo aleatorio con un 50% de probabilidades de acertar.

4º Fila: Una predicción nefasta que falla la mayoría de las veces.

5º Fila: Una predicción lamentable que nunca acierta.

Entonces, ¿Que es la ROC-AUC? Es el área de la curva ROC es decir el área rosa de las gráficas de la última columna. Si nos fijamos cuanto mejor es la predicción, mayor es el área rosa y por lo tanto mayor es la métrica de ROC-AUC.

Significado de ROC-AUC

Pero ahora viene lo importante, ¿Que está midiendo el Area bajo la curva ROC o "ROC-AUC"? Pues simplemente la probabilidad de que eligiendo dos valores de entrada a la red, uno positivo y otro negativo; sea mayor el score del positivo que del negativo.

Pongamos un pequeño ejemplo: Imaginemos que tenemos una red neuronal que detecta en base a una imagen de RX de Torax si tenemos neumonía (Positivo) o si no tenemos neumonía (Negativo):

Elegimos aleatóriamente una imagen que tiene SI neumonía y predecimos con la red neuronal si tiene o no neumonía , la red neuronal nos retornará un resultado , por ejemplo .

Elegimos aleatóriamente otra imagen que tiene NO neumonía y predecimos con la red neuronal si tiene o no neumonía , la red neuronal nos retornará un resultado , por ejemplo .

Vemos que , pero si repetimos este mismo experimentos con miles de imágenes aleatorías, pero siempre en parejas de una con neumonía (positiva) y otra sin neumonía (negativa). ¿Cual es la probabilidad de que sea mayor el valor de la positiva que el de la negativa? Es decir cual es la probabilidad de que , o dicho de otro modo,¿cuanto vale ?

Por lo tanto:

Vale, pero ¿Y que utilidad tiene eso? ¿Para que quiero saber ? Veámoslo con un ejemplo: Sigamos con el ejemplo de una red neuronal que detecta en base a una imagen de RX de Torax si tenemos neumonía (Positivo) o si no tenemos neumonía (Negativo).

Ejemplo 1:

La red neuronal ha dado los siguientes resultado:

Score con neumonía=	Score sin neumonía=
0,78	0,34	Si
0,78	0,67	Si
0,78	0,51	Si
0,92	0,34	Si
0,92	0,67	Si
0,92	0,51	Si
0,75	0,34	Si
0,75	0,67	Si
0,75	0,51	Si

Hay un total 9 posibilidades, y en 9 de ellas se da el caso de que el Score con neumonía > Score sin neumonía. Por lo tanto:

Ejemplo 2:

Score con neumonía=	Score sin neumonía=
0,34	0,78	No
0,34	0,92	No
0,34	0,75	No
0,67	0,78	No
0,67	0,92	No
0,67	0,75	No
0,51	0,78	No
0,51	0,92	No
0,51	0,75	No

Hay un total 9 posibilidades, y en 0 de ellas se da el caso de que el Score con neumonía > Score sin neumonía. Por lo tanto:

Ejemplo 3:

En este caso

Score con neumonía=	Score sin neumonía=
0,7	0,4	Si
0,7	0,6	Si
0,7	0,3	Si
0,2	0,4	No
0,2	0,6	No
0,2	0,3	No
0,8	0,4	Si
0,8	0,6	Si
0,8	0,3	Si

Hay un total 9 posibilidades, y en 6 de ellas se da el caso de que el Score con neumonía > Score sin neumonía. Por lo tanto:

Es decir:

Si significa que podemos distinguir perfectamente una imagen con neumonía de otra sin neumonía, ya que hay un umbral a partir del cual podemos distinguirlo

Si es imposible (realmente si que podemos imaginando que los resultado con neumonía son los inferiores pero imaginemos que no lo hacemos). Y no hay un umbral que permita distinguirlos

Si a veces no vamos a podes distinguir si tiene neumonía o si no lo tiene.

Por todo ello nos interesa un valor lo más cercano a 1 en ROC-AUC y eso significará que la red neuronal es más capaz de distinguir lo que tienen neumonía de los que no la tienen. Y todo ello de forma independiente del umbral que elijamos.

¿Y tiene alguna otra utilidad ROC-AUC? Pues según Disadvantages of using the area under the receiver operating characteristic curve to assess imaging tests: A discussion and proposal for an alternative approach y AUC: A misleading measure of the performance of predictive distribution models no es mucho más útil. Pero como cualquier otra métrica , siempre es útil mostrarla para ver que no tenga una valor bajo ya que nos puede indicar que hay algo malo en el modelo. Por último parece que una de sus mayores utilidades es que lo pide la US Food and Drug Administration (FDA).

Pero como en las anteriores métricas que estamos viendo es una métrica que solo se basa en la sensibilidad y la especificidad.

En keras podemos usar la métrica de ROC-AUC de la siguiente forma:

y usarla como

Con sklearn podemos usar la métrica de ROC-AUC de la siguiente forma:

Mas información:

AUC class

Curvas ROC y Área bajo la curva (AUC)

How to Use ROC Curves and Precision-Recall Curves for Classification in Python

Predicting Receiver Operating Characteristic curve, area under curve , and arithmetic means of accuracies based on the distribution of data samples

Disadvantages of using the area under the receiver operating characteristic curve to assess imaging tests: A discussion and proposal for an alternative approach

Mathematics behind ROC-AUC interpretation y Mathematics behind ROC-AUC interpretation.pdf: Demostración de que

AUC: A misleading measure of the performance of predictive distribution models

Cálculo del mejor Threshold:

Defining an Optimal Cut-Point Value in ROC Analysis: An Alternative Approach

On determining the most appropriate test cut-off value: the case of tests with continuous results

Accuracy

Accuracy (Exactitud) mide la proporción de predicciones correctas sobre el total de predicciones realizadas. Por lo que su fórmula es:

Y también se puede expresar usando Especificidad, Sensibilidad y Prevalencia:

Demostración de la fórmula usando Especificidad, Sensibilidad y Prevalencia:

Esta métrica es la más sencilla de todas ya que simplemente es el "porcentaje" de cuantas veces acierta en función de todas las predicciones que ha hecho.

Como ya hemos comentado, lo bueno que es intrínsecamente nuestro modelo se defiende por las métricas de sensibilidad y especificidad. Sin embargo, la prevalencia modifica el resultado final y es con lo que se calcula el VPP y VPN. Pues bien, lo que queremos es tener un número (en este caso la métrica de Accuracy) y que nos diga cómo es de buena nuestra red neuronal bajo las distintas prevalencias, sensibilidades y especificidades.

En la siguiente figura vemos como se comparta bajo distintos valores de sensibilidad, especificidad y prevalencia.

Si nos fijamos en cada una de las gráficas, vemos que siempre es una linea recta. Mirando también en la fórmula podemos verlo como una ecuación de primer grado que depende de la prevalencia. El valor de accuracy es una línea recta desde la especificidad hasta la sensibilidad. ¿Es un buen resumen de nuestra red? Pues si tenemos baja prevalencia, la accuracy prácticamente es la especificidad y con alta prevalencia, la accuracy es prácticamente la sensibilidad. Pues no parece que sea muy buena resumiendo los valores de sensibilidad y especificidad bajo distintas prevalencias.

Pero veamos los siguientes ejemplo de matrices de confusión para ver lo poco representativo que es esta métrica:

Matthews Correlation Coefficient (MCC)

El es simplemente el Coeficiente de correlación de Pearson para una muestra. Es decir es un coficiente que nos dice como de similares son dos variables aleatorias. En este caso las 2 variable aleatorias son los valores verdaderos y_true y los valores predichos y_pred

Su fórmula es:

Demostración de la fórmulaCoeficiente de correlación de Pearson para una muestra Sumatorios : La lista de los valores verdaderos. Que sabemos que valen 0 o 1 : La lista de los valores predichos. Que sabemos que valen 0 o 1 Y subtituyendo: Ahora vamos a desarrollar y simplificar únicamente el numerador: Pasemos ahora a desarrollando y simplificar la parte izquierda del denominador Y por último la parte derecha del denominador Y juntando las 3 partes (numerador, izquierda denominador y derecha denominador) se obtiene ya fórmula exacta del MCC

La formula según la prevalencia es:

Demostración fórmula en función Sensibilidad , Especificidad y Prevalencia Para simplificar la demostración para a hacer los siguientes cambios de variables y simplificaciones: Ahora vamos a desarrollar y simplificar únicamente el numerador: Pasemos ahora a desarrollando y simplificar el contenido de la raíz izquierda del denominador. Pasemos ahora a desarrollando y simplificar el contenido de la raíz derecha del denominador. Y juntando las 3 partes (numerador, contenido raíz izquierda denominador y contenido raíz derecha denominador) se obtiene:

El MMC tiene un valor entre -1 a 1. Siendo:

: El clasificador funciona perfectamente y es cuando hay una completa correlación entre lo predicho y lo verdadero.

: El clasificador acierta aleatoriamente y es cuando hay una nula correlación entre lo predicho y lo verdadero.

: El clasificador acierta peor que aleatoriamente, es decir que clasifica al revés "perfectamente" y es cuando hay correlación inversa entre lo predicho y lo verdadero.

En la siguiente imagen podemos ver distintos valores del Coeficiente de correlación de Pearson:

Es decir que el MMC solo mide la relación lineal entre los valores verdaderos y_true y los valores predichos y_pred.

Si esa relación es lineal directa, el MMC valdrá 1

Si no hay una relación lineal, el MMC valdrá 0

Si la relación es lineal inversa, el MMC valdrá -1.

Como en otro casos, al ser el MMC un valor de -1 a 1, lo vamos a normalizar para que su valor sea de 0 a 1 y de esa forma sea más sencillo de comparar con otras métricas. A esta nueva métrica la llamaremos o

Veamos en la siguiente figura los mismos ejemplos que en y los vamos a comparar

Podemos hacer uso de la métrica con la función sklearn.metrics.matthews_corrcoef de sklearn

Ejemplo de uso:

y por último vamos a hacer una prueba si el MCC y el Coeficiente de correlación de Pearson dan el mismo resultado.

Y podemos comprobar que ambas métricas dan el mismo resultado.

Mas información:

sklearn.metrics.matthews_corrcoef

Matthews Correlation Coefficient is The Best Classification Metric You’ve Never Heard Of

Ten quick tips for machine learning in computational biology

Phi Coefficient A.K.A Matthews Correlation Coefficient (Binary Classification)

The advantages of the Matthews correlation coefficient (MCC) over F1 score and accuracy in binary classification evaluation

Phi coefficient-Wikipedia

Markedness

Este índice pretende resumir los valores del VPP (precisión) y VPN. Su fórmula es:

Como vemos, es la suma de la precisión más la VPN menos 1. Eso hace que su rango sea de -1 a 1. En estos caso como ya hemos comentado en ese caso calcularemos el o para que tenga un valor de 0 a 1

Es decir que el es simplemente la media aritmética de VPP y VPN. Este índice será útil si sabemos la prevalencia y los datos están más o menos balanceados.

Explicar que es lo que mide, es sencillo ya que es la media aritmética entre VPP y VPN.

Veamos en la siguiente figura los mismos ejemplos que en y los vamos a comparar

Para terminar vamos a comparar y

Jaccard

El índice Jaccard es simplemente el porcentaje de TP respecto a los TP,FP y FN. Pero en vez de ser un porcentaje de 0 a 100 va de 0 a 1.

Demostración de la fórmula Sabiendo que: Entonces:

La fórmula también se puede expresar usando a y la

Demostración fórmula en función $Sensibilida$ y $Precision$ Sabemos que: Despejando y se obtiene: Ahora substituyendo y en el índice Jacard se obtiene

Por último se puede expresar en función de , y :

Demostración fórmula en función Sensibilidad , Especificidad y Prevalencia Usando el teorema de bayes podemos definir P(Positivo) de la siguiente forma: Y ahora usamos la formula de P(Positivo) en la definición del Indice Jaccard Por lo tanto

F1-score

La métrica del se suele explicar inicialmente como la media armónica entre Sensibilidad y Precision y cuya ventaja es que la media es menor que la aritmética si los valores son distintos.

La formula con la media armónica es la siguiente:

La fórmula se puede simplificar:

En función de la matriz de confusión se puede expresar como:

Por último de puede definir en función de la Sensibilidad, Especifidad y Prevalencia:

Origen de la fórmula del f1-scoreVan Rijsbergen, C. J. (1979). Information Retrieval.Chapter 7.Evaluation Sabiendo que (véase Teoría de Probabilidad) Sabiendo que

Vamos ahora a explicar la fórmula según la teoría de conjuntos:

El conjunto de los positivos son aquellos que el modelo de IA ha predicho que son positivos, mientras que el conjunto de los enfermos son los que realmente están enfermos. Si pensamos un poco nos gustaría que ambos conjuntos fueran iguales, es decir si decimos que un paciente el positivo que también esté enfermo pero si está enfermo que también sea positivo.

Veamos ahora los datos de los 3 casos de una forma numérica.

Caso	Nº Enfermos	Nº Positivos	Nº Enfermos y Nº Positivos=TP
A	10	10	3
B	10	10	0
C	10	10	10

¿que caso es mejor? Realmente el Caso C en que ambos conjuntos son iguales. El peor de los casos será el Caso B, en el que no hay ningún elemento en común , mientras que un caso intermedio es el Caso A, en el que 3 pacientes que son positivos y enfermos.

¿Y que hace la división? Simplemente normalizar el valor para que de un resultado de 0 a 1. Y ese factor por el que se divide es la media del tamaño de ambos conjuntos. Por eso en formula el denominador es la media aritmética entre el tamaño del conjunto de los enfermos (Nº de enfermos) y el tamaño del conjunto de los positivos (Nº de positivos). Y por eso me parece un error cuando ese 2 se coloca arriba multiplicando a porque no deja claro el significado de la fórmula.

Por lo tanto, el nos está diciendo simplemente como de parecidos son el conjunto de los positivos y de los enfermos. Si el vale 1 significa que ambos conjuntos son iguales por lo que siempre que el modelo de IA diga que un paciente es positivo estará también enfermo, mientras que si vale 0 es que son totalmente distintos los conjuntos. Por lo que cuando el modelo de IA diga que un paciente es positivo nunca estará enfermo.

Para terminar, esta métrica se está centrando únicamente en los positivos y enfermos. Por lo que no nos será útil si nos interesa los sanos/negativos. Y por ello el no es una buena métrica si queremos ver el rendimiento global de nuestra IA.

Volvamos a la media armónica, ¿tiene algún tipo de importancia que en la fórmula se esté usando la media armónica? y ¿que se insista en que dicha medía da un valor inferior a la aritmética cuando los valores de sensibilidad y precisión son distintos? La respuesta a ambas preguntas es que NO.

Demostración fórmula en función Sensibilidad , Especificidad y Prevalencia

Más informnación:

Van Rijsbergen, C. J. (1979). Information Retrieval.Chapter 7.Evaluation

F1 Score vs ROC AUC

Dice-Sørensen coefficient

Fowlkes-Mallows (FM)

Es la media geométrica entre la sensibilidad y la precisión

Más información:

Fowlkes–Mallows index. Wikipedia

A Method for Comparing Two Hierarchical Clusterings. E. B. Fowlkes &C. L. Mallows

Comparing clusterings—an information based distance

sklearn.metrics.fowlkes_mallows_score

Geeks for Geeks: Fowlkes-Mallows Score

PR-AUC

La métrica PR-AUC es el Area bajo la curva Precisión-Especificidad (llamada en inglés Precision-Recall o PR) que se usa cuando los datos tienen una baja prevalencia. La forma de calcularlo es similar al ROC-AUC pero en vez de usar la y , se calcula usando las métricas de:

Pero sigue la misma idea de calcular esas 2 métricas para cada valor del umbral y enfrentarla una contra otra.

El métrica de ROC-AUC no tenía en cuenta la prevalencia ya que no se usaba en la fórmula. Por otro lado PR-AUC, si que tiene en cuenta la prevalencia ya que usa la precisión pero por otro lado no tiene en cuenta los . Lo que la hace válida como métrica para datos desbalanceados.

Más información:

The Precision-Recall Plot Is More Informative than the ROC Plot When Evaluating Binary Classifiers on Imbalanced Datasets

ROC Graphs:Notes and Practical Considerations for Researchers

How and Why I Switched from the ROC Curve to the Precision-Recall Curve to Analyze My Imbalanced Models: A Deep Dive

F1 Score vs ROC AUC vs Accuracy vs PR AUC: Which Evaluation Metric Should You Choose?

Ejercicios

Ejercicio 1.A

Tenemos el modelo del tema anterior que guardaste a disco.

Carga ese modelo y usando los datos de test, calcula las métricas independientes de la prevalencia

Informedness Normalizado

Balanced Accuracy

1-Prevalence threshold (PT)

ROC-AUC

Crea la función informedness_normalizado,balanced_accuracy,prevalence_threshold,roc_auc=get_metrics_independientes_prevalencia(y_true, y_score,threshold = 0.5)

Ejercicio 1.B

Usando los datos de test, calcula ahora las métricas de rendimiento global

Accuracy

Matthews correlation coefficient Normalizado (nMCC)

Markedness

La prevalencia a usar será la de los datos.

Crea la función accuracy,mcc_normalizado,markedness=get_metrics_rendimiento_global(y_true, y_score,threshold = 0.5,prevalencia=None)

Ejercicio 1.C

Usando los datos de test, calcula ahora las métricas para datos desbalaceados

Jaccard

F1-score

Fowlkes-Mallows (FM)

PR-AUC

La prevalencia a usar será la de los datos.

Crea la función jaccard,f1_score,fowlkes_mallows,pr_auc=get_metrics_datos_desbalaceados(y_true, y_score,threshold = 0.5,prevalencia=None)

Ejercicio 2.A: Prevalencia

Porque no vamos a mostrar las siguientes métricas en una gráfica en función de la prevalencia

Informedness Normalizado

Balanced Accuracy

1-Prevalence threshold (PT)

ROC-AUC

Ejercicio 2.B

Usando los datos de Test, muestra las siguientes métricas en función de la prevalencia [0,1].

Accuracy

Matthews correlation coefficient Normalizado (nMCC)

Markedness

Además muestra una línea vertical con la prevalencia de los datos.

Ejercicio 2.C

Usando los datos de Test, muestra las siguientes métricas en función de la prevalencia [0,1].

Jaccard

F1-score

Fowlkes-Mallows (FM)

PR-AUC

Además muestra una línea vertical con la prevalencia de los datos.

¿Porqué no ha variado PR-AUC?

Ejercicio 2.D

Usando los datos de Test, muestra las siguientes métricas en función de la prevalencia [0,0.1].

Jaccard

F1-score

Fowlkes-Mallows (FM)