clase:iabd:pia:matematicas:probabilidad_metricas
Diferencias
Muestra las diferencias entre dos versiones de la página.
| — | clase:iabd:pia:matematicas:probabilidad_metricas [2025/11/03 11:37] (actual) – creado - editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| + | ====== 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, | ||
| + | |||
| + | y ahora los juntamos en un único conjunto | ||
| + | |||
| + | * $ Y= \{ (y_{real}, | ||
| + | |||
| + | ====== El umbral ====== | ||
| + | Y vamos a suponer que el umbral para saber si es positivo o negativo es **0.5** | ||
| + | |||
| + | |||
| + | |||
| + | $N=|\{(y_{real}, | ||
| + | |||
| + | $P=|\{(y_{real}, | ||
| + | |||
| + | $PN=|\{(y_{real}, | ||
| + | |||
| + | $PP=|\{(y_{real}, | ||
| + | |||
| + | $TN=|\{ (y_{real}, | ||
| + | |||
| + | $FP=|\{ (y_{real}, | ||
| + | |||
| + | $FN=|\{ (y_{real}, | ||
| + | |||
| + | $TP=|\{ (y_{real}, | ||
| + | |||
| + | La matriz de confusión es la siguiente: | ||
| + | |||
| + | | ^^ Predicción | ||
| + | | ^^ PN, | ||
| + | ^ Realidad | ||
| + | ^ ::: ^ P, | ||
| + | |||
| + | 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, | ||
| + | ^ Realidad | ||
| + | ^ ::: ^ P, | ||
| + | |||
| + | |||
| + | |||
| + | Ahora mostremos las métricas | ||
| + | |||
| + | |||
| + | | ^^ Predicción | ||
| + | | ^^ PN,$ y_{predicho} \in [0, | ||
| + | ^ Realidad | ||
| + | ^ ::: ^ P, | ||
| + | ^ Métricas ^ Negativa | ||
| + | ^ ::: ^ Positiva | ||
| + | |||
| + | $$ | ||
| + | \begin{array} | ||
| + | \\ | ||
| + | P(Predicho \; negativo|Negativo)& | ||
| + | \\ | ||
| + | P(Predicho \; positivo|Negativo)& | ||
| + | \\ | ||
| + | \\ | ||
| + | P(Predicho \; negativo|Positivo)& | ||
| + | \\ | ||
| + | P(Predicho \; positivo|Positivo)& | ||
| + | \\ | ||
| + | \end{array} | ||
| + | $$ | ||
| + | \\ | ||
| + | \\ | ||
| + | $$ | ||
| + | \begin{array} | ||
| + | \\ | ||
| + | P(Negativo|Predicho \; negativo)& | ||
| + | \\ | ||
| + | P(Positivo|Predicho \; negativo)& | ||
| + | \\ | ||
| + | \\ | ||
| + | P(Negativo|Predicho \; positivo)& | ||
| + | \\ | ||
| + | P(Positivo|Predicho \; positivo)& | ||
| + | \\ | ||
| + | \end{array} | ||
| + | $$ | ||
| + | \\ | ||
| + | \\ | ||
| + | |||
| + | $$ | ||
| + | \begin{array} | ||
| + | \\ | ||
| + | P(Positivo)& | ||
| + | \\ | ||
| + | P(Negativo)& | ||
| + | \\ | ||
| + | P(Predicho \; positivo)& | ||
| + | \\ | ||
| + | P(Predicho \; negativo)& | ||
| + | \end{array} | ||
| + | $$ | ||
| + | |||
| + | |||
| + | Pero usando Bayes podemos calcular los valores predictivos positivos y negativos 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)} | ||
| + | |||
| + | $$P(Positivo|Predicho \; negativo)=\frac{P(Predicho \; negativo|Positivo)*P(Positivo)}{P(Predicho \; negativo|Positivo)*P(Positivo)+P(Predicho \; negativo|Negativo)*P(Negativo)} | ||
| + | |||
| + | $$P(Negativo|Predicho \; negativo)=\frac{P(Predicho \; negativo|Negativo)*P(Negativo)}{P(Predicho \; negativo|Negativo)*P(Negativo)+P(Predicho \; negativo|Positivo)*P(Positivo)} | ||
| + | |||
| + | $$P(Negativo|Predicho \; positivo)=\frac{P(Predicho \; positivo|Negativo)*P(Negativo)}{P(Predicho \; positivo|Negativo)*P(Negativo)+P(Predicho \; positivo|Positivo)*P(Positivo)} | ||
| + | |||
| + | ====== 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, | ||
| + | |||
| + | |||
| + | $I=\{ \;\; [0, | ||
| + | |||
| + | Por lo tanto ahora habrá menos fórmulas. | ||
| + | |||
| + | $N=|\{(y_{real}, | ||
| + | |||
| + | $P=|\{(y_{real}, | ||
| + | |||
| + | $Pre_i=|\{(y_{real}, | ||
| + | |||
| + | |||
| + | |||
| + | $N_i=|\{ (y_{real}, | ||
| + | |||
| + | |||
| + | $P_i=|\{ (y_{real}, | ||
| + | |||
| + | |||
| + | |||
| + | | ^^ Predicción | ||
| + | | ^^ Pre< | ||
| + | ^ Realidad | ||
| + | ^ ::: ^ P, | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | $$ | ||
| + | \begin{array} | ||
| + | \\ | ||
| + | P(Predicho_i|Negativo)& | ||
| + | \\ | ||
| + | P(Predicho_i|Positivo)& | ||
| + | |||
| + | \end{array} | ||
| + | $$ | ||
| + | \\ | ||
| + | \\ | ||
| + | $$ | ||
| + | \begin{array} | ||
| + | \\ | ||
| + | P(Negativo|Predicho_i)& | ||
| + | \\ | ||
| + | P(Positivo|Predicho_i)& | ||
| + | |||
| + | \end{array} | ||
| + | $$ | ||
| + | \\ | ||
| + | \\ | ||
| + | |||
| + | $$ | ||
| + | \begin{array} | ||
| + | \\ | ||
| + | P(Positivo)& | ||
| + | \\ | ||
| + | P(Negativo)& | ||
| + | \\ | ||
| + | P(Predicho_i)& | ||
| + | \end{array} | ||
| + | $$ | ||
| + | |||
| + | Ahora mostremos las métricas | ||
| + | |||
| + | |||
| + | | ^^ Predicción | ||
| + | | ^^ Pre< | ||
| + | ^ Realidad | ||
| + | ^ ::: ^ P, | ||
| + | ^ Métricas ^ Negativa | ||
| + | ^ ::: ^ Positiva | ||
| + | |||
| + | |||
| + | y ahora la tabla de confusión se podría simplificar aun más | ||
| + | |||
| + | | ^^ Predicción | ||
| + | | ^^ Pre< | ||
| + | ^ Realidad | ||
| + | ^ ::: ^ P, | ||
| + | ^ Métricas ^ Negativa | ||
| + | ^ ::: ^ Positiva | ||
| + | |||
| + | 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) | ||
| + | |||
| + | ====== Generalizando los intervalos ====== | ||
| + | __**y ahora viene lo interesante, | ||
| + | |||
| + | $I=\{ \; | ||
| + | |||
| + | En el siguiente código en Python se puede ver el resultado de usar las fórmulas: | ||
| + | |||
| + | |||
| + | ====== Infinitos intervalos ====== | ||
| + | ¿Y si hubiera infinitos intervalos? Que podríamos sacar la probabilidad exacta para el resultado que nos ha dado. | ||
| + | |||
| + | ¿como sacarlo para infinitos intervalos? Pues calculando la función de densidad de probabilidad. | ||
| + | |||
| + | Sabemos que la función de coste para las redes neuronales es $Binary \: Cross \: Entropy$: | ||
| + | |||
| + | $$Binary \: Cross \: Entropy(y_{real}, | ||
| + | |||
| + | Los valores de $y_{real}$ son 0 o 1, mientras que los valores de $y_{predicho}$ es un número real entre 0 y 1 | ||
| + | |||
| + | Veamos ahora gráficamente como es la fórmula según si $y_{real}=0$ o $y_{real}=1$ | ||
| + | |||
| + | $$ | ||
| + | Binary \: Cross \: Entropy(y_{real}, | ||
| + | -log(1-y_{predicho}) & si & y_{real}=0 | ||
| + | -log(y_{predicho}) & si & y_{real}=1 | ||
| + | \end{matrix}\right. | ||
| + | $$ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ====== Ejemplos ====== | ||
| + | |||
| + | * Evolución de la red de "las imágenes de números " en 16 épocas: | ||
| + | {{ : | ||
| + | * Evolución de la red de " | ||
| + | {{ : | ||
