¡Esta es una revisión vieja del documento!
En este apartado vamos a ampliar las métricas que podemos usar con la clasificación binaria las cuales ya vimos en 7. Entrenamiento de redes neuronales c) Métricas.
Para ampliar nos vamos a basar en este diagrama (que se puede ver en Matriz de confusión en Wikipedia)
Las métricas que ya las hemos explicado en el tema de métricas son:
Las métricas que ahora vamos a ver son métricas que hacen la media entre alguna de las dos métricas que acabamos de indicar.
Para organizar las métricas según 2 criterios:
Las 4 métricas básicas son Sensibilidad, Especificidad, FPR y FNR. Según eso existen las siguientes métricas:
Fórmula que usan | |||||
---|---|---|---|---|---|
Métricas básicas que usan | Media aritmética | Media armónica | Media geométrica | Suma-1 | Ratio |
Sensibilidad (TPR) y Especificidad (TNR) | $Informedness=TPR+TNR-1$ | ||||
Sensibilidad (TPR) y FPR | $Positive \; likelihood \; ratio=\frac{TPR}{FPR}$ | ||||
Especificidad (TNR) y FNR | $Negative \; likelihood \; ratio=\frac{FNR}{TNR}$ | ||||
FPR y FNR |
Mas información:
$$ Youden \; Index=maximo \{ sensibilidad(threhold)+especificidad(threhold)-1 \} \;\; threshold \in [0,1] $$
Fórmula que usan | |||||
---|---|---|---|---|---|
Métricas básicas que usan | Media aritmética | Media armónica | Media geométrica | Suma-1 | Ratio |
Sensibilidad (TPR) y Especificidad (TNR) | $\frac{TPR+TNR}{2}$ | $\frac{2}{\frac{1}{TPR}+\frac{1}{TNR}}$ | $\sqrt{TPR*TNR}$ | $\frac{TPR}{TNR}$ y $\frac{TNR}{TPR}$ | |
Sensibilidad (TPR) y FPR | $\frac{TPR+FPR}{2}$ | $\frac{2}{\frac{1}{TPR}+\frac{1}{FPR}}$ | $\sqrt{TPR*FPR}$ | $TPR+FPR-1$ | $\frac{FPR}{TPR}$ |
Especificidad (TNR) y FNR | $\frac{TNR+FNR}{2}$ | $\frac{2}{\frac{1}{TNR}+\frac{1}{FNR}}$ | $\sqrt{TNR*FNR}$ | $TNR+FNR-1$ | $\frac{TNR}{FNR}$ |
FPR y FNR | $\frac{FPR+FNR}{2}$ | $\frac{2}{\frac{1}{FPR}+\frac{1}{FNR}}$ | $\sqrt{FPR*FNR}$ | $FPR+FNR-1$ | $\frac{FNR}{FPR}$ y $\frac{FPR}{FNR}$ |
Las 4 métricas derivadas son PPV, NPV, FDR y FOR.
Fórmula que usan | |||||
---|---|---|---|---|---|
Métricas básicas que usan | Media aritmética | Media armónica | Media geométrica | Suma-1 | Ratio |
PPV y NPV | $Markdness=PPV+NPV-1$ | ||||
PPV y FOR | |||||
NPV y FDR | |||||
FDR y FOR |
Fórmula que usan | |||||
---|---|---|---|---|---|
Métricas básicas que usan | Media aritmética | Media armónica | Media geométrica | Suma-1 | Ratio |
PPV y NPV | $\frac{PPV+NPV}{2}$ | $\frac{2}{\frac{1}{PPV}+\frac{1}{NPV}}$ | $\sqrt{PPV*NPV}$ | $\frac{PPV}{NPV}$ y $\frac{NPV}{PPV}$ | |
PPV y FOR | $\frac{PPV+FOR}{2}$ | $\frac{2}{\frac{1}{PPV}+\frac{1}{FOR}}$ | $\sqrt{PPV*FOR}$ | $PPV+FOR-1$ | $\frac{PPV}{FOR}$ y $\frac{FOR}{PPV}$ |
NPV y FDR | $\frac{NPV+FDR}{2}$ | $\frac{2}{\frac{1}{NPV}+\frac{1}{FDR}}$ | $\sqrt{NPV*FDR}$ | $NPV+FDR-1$ | $\frac{NPV}{FDR}$ y $\frac{FDR}{NPV}$ |
FDR y FOR | $\frac{FDR+FOR}{2}$ | $\frac{2}{\frac{1}{FDR}+\frac{1}{FOR}}$ | $\sqrt{FDR*FOR}$ | $FDR+FOR-1$ | $\frac{FDR}{FOR}$ y $\frac{FOR}{FDR}$ |
Son métricas que juntan una métrica básica con una métrica derivada. Debido a que existen 16 combinaciones no vamos a mostrar todas las que existen, sino solo las que he considerado interesantes.
Fórmula que usan | |||||
---|---|---|---|---|---|
Métricas básicas que usan | Media aritmética | Media armónica | Media geométrica | Suma-1 | Ratio |
PPV y Sensibilidad (TPR) | $F_{1}score=\frac{2}{\frac{1}{PPV}+\frac{1}{TPR}}$ | $Fowlkes-Mallows \; index=\sqrt{PPV*TPR}$ | |||
NPV y Especificidad (TNR) |
Fórmula que usan | |||||
---|---|---|---|---|---|
Métricas básicas que usan | Media aritmética | Media armónica | Media geométrica | Suma-1 | Ratio |
PPV y Sensibilidad (TPR) | $\frac{PPV+TPR}{2}$ | $PPV+TPR-1$ | $\frac{PPV}{TPR}$ y $\frac{TPR}{PPV}$ | ||
NPV y Especificidad (TNR) | $\frac{NPV+TNR}{2}$ | $\frac{2}{\frac{1}{NPV}+\frac{1}{TNR}}$ | $\sqrt{NPV*TNR}$ | $NPV+TNR-1$ | $\frac{NPV}{TNR}$ y $\frac{TNR}{NPV}$ |
Veamos ahora otras métricas que derivamos a partir de las básicas que son Sensibilidad, Especificidad, Prevalencia, FPR y FNR.
Accuracy (Exactitud) mide la proporción de predicciones correctas sobre el total de predicciones realizadas. Por lo que su fórmula es:
$$ Accuracy=\frac{TP+TN}{TP+FN+FP+TN} $$
$$ Accuracy=P(Predicción \; correcta|Predicción \; realizada) $$
$$ P(Predicción \; correcta|Predicción \; realizada)=P(Positivo \cap Enfermo) + P(Negativo \cap Sano)= $$
$$ P(Positivo|Enfermo)*P(Enfermo)+P(Negativo|Sano)*P(Sano)=Sensibilidad*Prevalencia+Especificidad*(1-Prevalencia) $$
$$ Accuracy=Sensibilidad*Prevalencia+Especificidad*(1-Prevalencia) $$
$$ Sensibilidad*Prevalencia+Especificidad*(1-Prevalencia)=\frac{TP}{(TP+FN)}*\frac{(TP+FN)}{TP+FN+FP+TN}+\frac{TN}{(FP+TN)}*\frac{(FP+TN)}{TP+FN+FP+TN}= $$
$$ \frac{TP}{TP+FN+FP+TN}+\frac{TN}{TP+FN+FP+TN}=\frac{TP+TN}{TP+FN+FP+TN}=Accuracy $$
Realmente esta no es una nueva métrica sino que es la misma que Accuracy pero con una prevalencia del 0.5
$$ Balanced \; Accuracy=\frac{Sensibilidad+Especificidad}{2} $$
$$ Accuracy=Sensibilidad*Prevalencia+Especificidad*(1-Prevalencia)= $$
$$ Sensibilidad*0,5+Especificidad*(1-0,5)=Sensibilidad*0,5+Especificidad*0,5= $$
$$ \frac{Sensibilidad}{2}+\frac{Especificidad}{2}=\frac{Sensibilidad+Especificidad}{2}=Balanced \; Accuracy $$
Este índice es la división entre 2 probabilidades:
$$ Indice \; Jaccard=\frac{P(Positivo \cap Enfermo)}{P(Positivo \cup Enfermo)}=\frac{TP}{TP+FP+FN} $$
$$ \frac{P(Positivo \cap Enfermo)}{P(Positivo \cup Enfermo)}= $$
$$ \frac{P(Positivo|Enfermo)*P(Enfermo)}{P(Positivo)+P(Enfermo)-P(Positivo \cap Enfermo)}=\frac{P(Positivo|Enfermo)*P(Enfermo)}{P(Positivo)+P(Enfermo)-P(Positivo|Enfermo)*P(Enfermo)} $$
$$ \begin{array} \\ P(Enfermo)&=&\frac{TP+FN}{TP+FN+FP+TN} \\ P(Sano)&=&\frac{FP+TN}{TP+FN+FP+TN} \\ P(Positivo)&=&\frac{TP+FP}{TP+FN+FP+TN} \\ P(Negativo)&=&\frac{FN+TN}{TP+FN+FP+TN} \\ P(Positivo|Enfermo)&=&\frac{TP}{TP+FN} \end{array} $$
$$ \frac{P(Positivo|Enfermo)*P(Enfermo)}{P(Positivo)+P(Enfermo)-P(Positivo|Enfermo)*P(Enfermo)}= $$
$$ \left ( \frac{TP}{TP+FN}*\frac{TP+FN}{TP+FN+FP+TN} \right ) \div \left (\frac{TP+FP}{TP+FN+FP+TN}+\frac{TP+FN}{TP+FN+FP+TN}-\frac{TP}{TP+FN}*\frac{TP+FN}{TP+FN+FP+TN} \right )= $$
$$ \left ( \frac{TP}{TP+FN+FP+TN} \right ) \div \left (\frac{TP+FP}{TP+FN+FP+TN}+\frac{TP+FN}{TP+FN+FP+TN}-\frac{TP}{TP+FN+FP+TN} \right )= $$
$$ \left ( \frac{TP}{TP+FN+FP+TN} \right ) \div \left (\frac{TP+FP+TP+FN-TP}{TP+FN+FP+TN} \right )=\left ( \frac{TP}{TP+FN+FP+TN} \right ) \div \left (\frac{TP+FP+FN}{TP+FN+FP+TN} \right )= $$
$$ \frac{TP}{TP+FP+FN}=Indice \; Jaccard $$
$$ P(Positivo)=\frac{P(Positivo|Enfermo)*P(Enfermo)}{P(Enfermo|Positivo)}= $$
$$ \frac{P(Positivo|Enfermo)*P(Enfermo)}{1} \div \frac{P(Positivo|Enfermo)*P(Enfermo)}{P(Positivo|Enfermo)*P(Enfermo)+P(Positivo|Sano)*P(Sano)}= $$
$$ Sensibilidad*Prevalencia+(1-Especificidad)*(1-Prevalencia) $$
$$ Indice \; Jaccard=\frac{P(Positivo|Enfermo)*P(Enfermo)}{P(Positivo)+P(Enfermo)-P(Positivo|Enfermo)*P(Enfermo)}= $$
$$ \frac{Sensibilidad*Prevalencia}{Sensibilidad*Prevalencia+(1-Especificidad)*(1-Prevalencia)+Prevalencia-Sensibilidad*Prevalencia}= $$
$$ \frac{Sensibilidad*Prevalencia}{(1-Especificidad)*(1-Prevalencia)+Prevalencia} $$
$$ Indice \; Jaccard=\frac{Sensibilidad*Prevalencia}{(1-Especificidad)*(1-Prevalencia)+Prevalencia} $$
La métrica de Prevalence threshold está explicada en Prevalence threshold (ϕe) and the geometry of screening curves.
Lo único que diremos respecto a la formula es que en el artículo aparece como:
$$ Prevalence \; threshold=\frac{\sqrt{Sensibilidad(1-Especificidad)}+(Especificidad-1)}{Sensibilidad+Especificidad+1} $$ Que jugando un poco con los signos se obtiene la formula equivalente que aparece en Wikipedia: $$ Prevalence \; threshold=\frac{\sqrt{Sensibilidad*FPR}-FPR}{Sensibilidad-FPR} $$
Se define como la división entre Positive likelihood ratio (LR+) y Negative likelihood ratio (LR-)
$$ DOR=\frac{LR+}{LR-}=\frac{TP*TN}{FP*FN} $$
$$ DOR=\frac{LR+}{LR-}=\frac{\frac{TPR}{1-TNR}}{\frac{1-TPR}{TNR}}=\frac{Sensibilidad*Especificidad}{(1-Sensibilidad)(1-Especificidad)} $$
Es otra métrica pero que tiene en cuenta que los datos no estén balanceados.
El MMC tiene un valor entre -1 a 1. Siendo:
$$MCC = \frac{ \mathit{TP} \times \mathit{TN} - \mathit{FP} \times \mathit{FN} } {\sqrt{ (\mathit{TP} + \mathit{FP}) ( \mathit{TP} + \mathit{FN} ) ( \mathit{TN} + \mathit{FP} ) ( \mathit{TN} + \mathit{FN} ) } }=\sqrt{TPR \times TNR \times PPV \times NPV}-\sqrt{FNR \times FPR \times FOR \times FDR}$$
Podemos hacer uso de la métrica con la función sklearn.metrics.matthews_corrcoef
de sklearn
Ejemplo de uso:
from sklearn.metrics import matthews_corrcoef y_true = [1,1,1,1,0,0,0,0] y_pred = [1,1,1,1,0,0,0,0] print("Valor para una predicción que acierta siempre=",matthews_corrcoef(y_true,y_pred)) y_true = [1,1,1,1,0,0,0,0] y_pred = [1,1,0,0,1,1,0,0] print("Valor para una predicción que acierta la mitad=",matthews_corrcoef(y_true,y_pred)) y_true = [1,1,1,1,0,0,0,0] y_pred = [0,0,0,0,1,1,1,1] print("Valor para una predicción que nunca acierta=",matthews_corrcoef(y_true,y_pred))
Valor para una predicción que acierta siempre= 1.0 Valor para una predicción que acierta la mitad= 0.0 Valor para una predicción que nunca acierta= -1.0
Mas información: