¡Esta es una revisión vieja del documento!
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.
Para calcular las métricas tenemos 2 arrays:
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)} $$
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)}=1-P(Positivo|Predicho_i) $$
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]\} \;\;\}$
¿Y si hubiera infinitos intervalos? Que podríamos sacar la probabilidad exacta para el resultado que nos ha dado.