Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:experimentos:probabilidad_metricas

¡Esta es una revisión vieja del documento!


Probabilidad métricas

Vamos a explicar como calcular la probabilidad que da una red neuronal en función de la prevalencia y el resultado de la red.

Para ello vamos a imaginar que la red neuronal, analiza una imágen para decirnos si tenemos cancer. El resultado puede ser positivo si tenemos cáncer y negativo si no tenemos cáncer.

  • Negativo=0
  • Positivo=1

Para calcular las métricas tenemos 2 arrays:

  • $ Y_{real}= \{ y_{real} \in \mathbb{N} \mid y_{real} \in \{0,1\} \; \} $ Array con los valores reales o verdaderos.
  • $ Y_{predicho}=\{ y_{predicho} \in \mathbb{R} \mid y_{predicho}\in[0,1[ \; \} $ Array con los valores predichos por la red neuronal.
  • $ Y= \{ (y_{real},y_{predicho}) | y_{real} \in Y_{real} , y_{predicho} \in Y_{predicho} \} $ Parejas de datos reales y predichos.

El umbral

Y vamos a suponer que el umbral para saber si es positivo o negativo es 0.5

$N=|\{(y_{real},y_{predicho}) \in Y | y_{real}=0 \}|$

$P=|\{(y_{real},y_{predicho}) \in Y | y_{real}=1 \}|$

$PN=|\{(y_{real},y_{predicho}) \in Y | y_{predicho} \in [0,0.5[ \}|$

$PP=|\{(y_{real},y_{predicho}) \in Y | y_{predicho} \in [0.5,1[ \}|$

$TN=|\{ (y_{real},y_{predicho}) \in Y | y_{real} = 0 \; \wedge \; y_{predicho} \in [0,0.5[ \}|$

$FP=|\{ (y_{real},y_{predicho}) \in Y | y_{real} = 0 \; \wedge \; y_{predicho} \in [0.5,1[ \}|$

$TN=|\{ (y_{real},y_{predicho}) \in Y | y_{real} = 1 \; \wedge \; y_{predicho} \in [0,0.5[ \}|$

$TN=|\{ (y_{real},y_{predicho}) \in Y | y_{real} = 1 \; \wedge \; y_{predicho} \in [0.5,1[ \}|$

La matriz de confusión es la siguiente:

Predicción
PN,Negativo PP,Positivo
Realidad N,Negativo TN FP
P,Positivo FN TP

Sin embargo tanto la predicción como la realidad son números , por lo tanto se puede expresar así:

Predicción
PN,$ y_{predicho} \in [0,0.5[$ PP,$ y_{predicho}\in [0.5,1[$
Realidad N,$y_{real}=0$ TN FP
P,$y_{real}=1$ FN TP

Ahora mostremos las métricas

Predicción Métricas
PN,$ y_{predicho} \in [0,0.5[$ PP,$ y_{predicho}\in [0.5,1[$ Predicho negativa Predicho positiva
Realidad N,$y_{real}=0$ TN FP $TNR=\frac{TN}{N}$ $FPR=\frac{FP}{N}$
P,$y_{real}=1$ FN TP $FNR=\frac{FN}{P}$ $TPR=\frac{TP}{P}$
Métricas Negativa $NPV=\frac{TN}{PN}$ $FDR=\frac{FP}{PP}$
Positiva $FOR=\frac{FN}{PN}$ $PPV=\frac{TP}{PP}$

$$ \begin{array} \\ P(Predicho \; negativo|Negativo)&=&\frac{TN}{N}&=&True \; Negative \; Rate (TNR) &=&Especificidad \\ P(Predicho \; positivo|Negativo)&=&\frac{FP}{N}&=&False \; Positive \; Rate \; (FPR)&=&1-Especificidad \\ \\ P(Predicho \; negativo|Positivo)&=&\frac{FN}{P}&=&False \; Negative \; Rate \; (FNR)&=&1-Sensibilidad \\ P(Predicho \; positivo|Positivo)&=&\frac{TP}{P}&=&True \; Positive \; Rate (TPR) &=&Sensibilidad \\ \end{array} $$

$$ \begin{array} \\ P(Negativo|Predicho \; negativo)&=&\frac{TN}{PN}&=&Negative \; Predictive \; Value \; (NPV)&& \\ P(Positivo|Predicho \; negativo)&=&\frac{FP}{PN}&=&False \; Omission \; Rate \; (FOR)&=&1-NPV \\ \\ P(Negativo|Predicho \; positivo)&=&\frac{FP}{PP}&=&False \; Discovery \; Rate \; (FDR)&=&1-Precisión \\ P(Positivo|Predicho \; positivo)&=&\frac{TP}{PP}&=&Positive \; Predictive \; Value \; (PPV)&=&Precisión& \\ \end{array} $$

$$ \begin{array} \\ P(Positivo)&=&\frac{P}{P+N}&=&Prevalencia \\ P(Negativo)&=&\frac{N}{P+N}&=&1-Prevalencia \\ P(Predicho \; positivo)&=&\frac{PP}{P+N} \\ P(Predicho \; negativo)&=&\frac{PN}{P+N} \end{array} $$

Pero usando Bayes podemos calcular la precisión usando la prevalencia que queramos:

$$P(Positivo|Predicho \; positivo)=\frac{P(Predicho \; positivo|Positivo)*P(Positivo)}{P(Predicho \; positivo|Positivo)*P(Positivo)+P(Predicho \; positivo|Negativo)*P(Negativo)} $$

Habría que poner las 3 formulas restantes de las 3 métricas que quedan, pero no se indican por ahorrar trabajo.

Simplificando las fórmulas

Ahora vamos a cambiar las fórmulas para en vez de poner por rangos de $[0,0.5[$ y $[0.5,1[$ usaremos un conjunto de rangos llamado $I$:

$I=\{ \;\; \{[0,0.5[\}\;,\;\{[0.5,1[\}\;\; \}$

Por lo tanto ahora habrá menos fórmulas.

$N=|\{(y_{real},y_{predicho}) \in Y | y_{real}=0 \}|$

$P=|\{(y_{real},y_{predicho}) \in Y | y_{real}=1 \}|$

$Pre_i=|\{(y_{real},y_{predicho}) \in Y | y_{predicho} \in I_i \}|$

$N_i=|\{ (y_{real},y_{predicho}) \in Y | y_{real} = 0 \; \wedge \; y_{predicho} \in I_i \}|$

$P_i=|\{ (y_{real},y_{predicho}) \in Y | y_{real} = 1 \; \wedge \; y_{predicho} \in I_i \}|$

Predicción
Pre0,$ y_{predicho} \in I_0$ Pre1,$ y_{predicho}\in I_1$
Realidad N,$y_{real}=0$ $N_0$ $N_1$
P,$y_{real}=1$ $P_0$ $P_1$

$$ \begin{array} \\ P(Predicho_i|Negativo)&=&\frac{N_i}{N} \\ P(Predicho_i|Positivo)&=&\frac{P_i}{P} \end{array} $$

$$ \begin{array} \\ P(Negativo|Predicho_i)&=&\frac{N_i}{Pre_i} \\ P(Positivo|Predicho_i)&=&\frac{P_i}{Pre_i} \end{array} $$

$$ \begin{array} \\ P(Positivo)&=&\frac{P}{P+N}&=&Prevalencia \\ P(Negativo)&=&\frac{N}{P+N}&=&1-Prevalencia \\ P(Predicho_i)&=&\frac{Pre_i}{P+N} \end{array} $$

Ahora mostremos las métricas

Predicción Métricas
Pre0,$ y_{predicho} \in I_0$ Pre1,$ y_{predicho}\in I_1$ Predicho0 Predicho1
Realidad N,$y_{real}=0$ $N_0$ $N_1$ $P(Predicho_0|Negativo)=\frac{N_0}{N}$ $P(Predicho_1|Negativo)=\frac{N_1}{N}$
P,$y_{real}=1$ $P_0$ $P_1$ $P(Predicho_0|Positivo)=\frac{P_0}{P}$ $P(Predicho_1|Positivo)=\frac{P_1}{P}$
Métricas Negativa $P(Negativo|Predicho_0)=\frac{N_0}{Pre_0}$ $P(Negativo|Predicho_1)=\frac{N_1}{Pre_1}$
Positiva $P(Positivo|Predicho_0)=\frac{P_0}{Pre_0}$ $P(Positivo|Predicho_1)=\frac{P_1}{Pre_1}$

y ahora la tabla de confusión se podría simplificar aun más

Predicción Métricas
Prei,$ y_{predicho} \in I_i$ Predichoi
Realidad N,$y_{real}=0$ $N_i$ $P(Predicho_i|Negativo)=\frac{N_i}{N}$
P,$y_{real}=1$ $P_i$ $P(Predicho_i|Positivo)=\frac{P_i}{P}$
Métricas Negativa $P(Negativo|Predicho_i)=\frac{N_i}{Pre_i}$
Positiva $P(Positivo|Predicho_i)=\frac{P_i}{Pre_i}$

Volvemos a usar Bayes para calcular la precisión usando la prevalencia que queramos:

$$P(Positivo|Predicho_i)=\frac{P(Predicho_i|Positivo)*P(Positivo)}{P(Predicho_i|Positivo)*P(Positivo)+P(Predicho_i|Negativo)*P(Negativo)} $$
$$P(Negativo|Predicho_i)=\frac{P(Predicho_i|Negativo)*P(Negativo)}{P(Predicho_i|Negativo)*P(Negativo)+P(Predicho_i|Positivo)*P(Positivo)} $$

Generalizando los intervalos

y ahora viene lo interesante, ¿que pasaría si en vez de haber un único umbral hubiera 10 umbrales?

$I=\{ \;\;\{[0,0.1[\}\;,\;\{[0.1,0.2[\}\;,\;\{[0.2,0.3]\}\;,\;\{[0.3,0.4]\}\;,\;\{[0.4,0.5]\}\;,\;\{[0.5,0.6]\}\;,\;\{[0.6,0.7]\}\;,\;\{[0.7,0.8]\}\;,\;\{[0.8,0.9]\}\;,\;\{[0.9,1]\} \;\;\}$

$$P(Positivo|Predicho_i)=\frac{P(Predicho_i|Positivo)*P(Positivo)}{P(Predicho_i|Positivo)*P(Positivo)+P(Predicho_i|Negativo)*P(Negativo)} $$
$$P(Negativo|Predicho_i)=\frac{P(Predicho_i|Negativo)*P(Negativo)}{P(Predicho_i|Negativo)*P(Negativo)+P(Predicho_i|Positivo)*P(Positivo)}=1-P(Positivo|Predicho_i) $$

clase/iabd/pia/experimentos/probabilidad_metricas.1707072711.txt.gz · Última modificación: 2024/02/04 19:51 por admin