Loading [MathJax]/jax/output/CommonHTML/jax.js

Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:matematicas: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:

  • Yreal={yrealNyreal{0,1}} Array con los valores reales o verdaderos.
  • Ypredicho={ypredichoRypredicho[0,1[} Array con los valores predichos por la red neuronal.
  • Y={(yreal,ypredicho)|yrealYreal,ypredichoYpredicho} 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=|{(yreal,ypredicho)Y|yreal=0}|

P=|{(yreal,ypredicho)Y|yreal=1}|

PN=|{(yreal,ypredicho)Y|ypredicho[0,0.5[}|

PP=|{(yreal,ypredicho)Y|ypredicho[0.5,1[}|

TN=|{(yreal,ypredicho)Y|yreal=0ypredicho[0,0.5[}|

FP=|{(yreal,ypredicho)Y|yreal=0ypredicho[0.5,1[}|

TN=|{(yreal,ypredicho)Y|yreal=1ypredicho[0,0.5[}|

TN=|{(yreal,ypredicho)Y|yreal=1ypredicho[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,ypredicho[0,0.5[ PP,ypredicho[0.5,1[
Realidad N,yreal=0 TN FP
P,yreal=1 FN TP

Ahora mostremos las métricas

Predicción Métricas
PN,ypredicho[0,0.5[ PP,ypredicho[0.5,1[ Predicho negativa Predicho positiva
Realidad N,yreal=0 TN FP TNR=TNN FPR=FPN
P,yreal=1 FN TP FNR=FNP TPR=TPP
Métricas Negativa NPV=TNPN FDR=FPPP
Positiva FOR=FNPN PPV=TPPP

P(Predichonegativo|Negativo)=TNN=TrueNegativeRate(TNR)=EspecificidadP(Predichopositivo|Negativo)=FPN=FalsePositiveRate(FPR)=1EspecificidadP(Predichonegativo|Positivo)=FNP=FalseNegativeRate(FNR)=1SensibilidadP(Predichopositivo|Positivo)=TPP=TruePositiveRate(TPR)=Sensibilidad

P(Negativo|Predichonegativo)=TNPN=NegativePredictiveValue(NPV)P(Positivo|Predichonegativo)=FPPN=FalseOmissionRate(FOR)=1NPVP(Negativo|Predichopositivo)=FPPP=FalseDiscoveryRate(FDR)=1PrecisiónP(Positivo|Predichopositivo)=TPPP=PositivePredictiveValue(PPV)=Precisión

P(Positivo)=PP+N=PrevalenciaP(Negativo)=NP+N=1PrevalenciaP(Predichopositivo)=PPP+NP(Predichonegativo)=PNP+N

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

P(Positivo|Predichopositivo)=P(Predichopositivo|Positivo)P(Positivo)P(Predichopositivo|Positivo)P(Positivo)+P(Predichopositivo|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=|{(yreal,ypredicho)Y|yreal=0}|

P=|{(yreal,ypredicho)Y|yreal=1}|

Prei=|{(yreal,ypredicho)Y|ypredichoIi}|

Ni=|{(yreal,ypredicho)Y|yreal=0ypredichoIi}|

Pi=|{(yreal,ypredicho)Y|yreal=1ypredichoIi}|

Predicción
Pre0,ypredichoI0 Pre1,ypredichoI1
Realidad N,yreal=0 N0 N1
P,yreal=1 P0 P1

P(Predichoi|Negativo)=NiNP(Predichoi|Positivo)=PiP

P(Negativo|Predichoi)=NiPreiP(Positivo|Predichoi)=PiPrei

P(Positivo)=PP+N=PrevalenciaP(Negativo)=NP+N=1PrevalenciaP(Predichoi)=PreiP+N

Ahora mostremos las métricas

Predicción Métricas
Pre0,ypredichoI0 Pre1,ypredichoI1 Predicho0 Predicho1
Realidad N,yreal=0 N0 N1 P(Predicho0|Negativo)=N0N P(Predicho1|Negativo)=N1N
P,yreal=1 P0 P1 P(Predicho0|Positivo)=P0P P(Predicho1|Positivo)=P1P
Métricas Negativa P(Negativo|Predicho0)=N0Pre0 P(Negativo|Predicho1)=N1Pre1
Positiva P(Positivo|Predicho0)=P0Pre0 P(Positivo|Predicho1)=P1Pre1

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

Predicción Métricas
Prei,ypredichoIi Predichoi
Realidad N,yreal=0 Ni P(Predichoi|Negativo)=NiN
P,yreal=1 Pi P(Predichoi|Positivo)=PiP
Métricas Negativa P(Negativo|Predichoi)=NiPrei
Positiva P(Positivo|Predichoi)=PiPrei

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

P(Positivo|Predichoi)=P(Predichoi|Positivo)P(Positivo)P(Predichoi|Positivo)P(Positivo)+P(Predichoi|Negativo)P(Negativo)
P(Negativo|Predichoi)=P(Predichoi|Negativo)P(Negativo)P(Predichoi|Negativo)P(Negativo)+P(Predichoi|Positivo)P(Positivo)=1P(Positivo|Predichoi)

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[}}

¿Y si hubiera infinitos intervalos? Que podríamos sacar la probabilidad exacta para el resultado que nos ha dado.

clase/iabd/pia/matematicas/probabilidad_metricas.1707073755.txt.gz · Última modificación: 2024/02/04 20:09 por admin