2 votos

Matriz de Confusión para Calcular Probabilidad

Se me planteó un problema relativamente simple y tenía curiosidad por saber cómo resolverlo.

Supongamos que tengo un detector de bombas en el aeropuerto, y que tiene un 99.99% de precisión. Es decir, cuando el detector suena o no suena, es correcto el 99.99% del tiempo. Y en la población, 1 de cada 10,000 personas realmente tiene una bomba.

¿Cuál es la probabilidad de que cuando sonó, la persona realmente tuviera una bomba?

EDIT** Esta es una pregunta sobre el Teorema de Bayes. Queremos saber la probabilidad de que una persona tenga una bomba dado la probabilidad de falso positivo / verdadero positivo como se indica aquí

2voto

Inspire Puntos 1362

Como reclama que 1 de cada 10000 tiene una bomba, podemos construir la siguiente matriz de confusión (asumiendo que nuestra población tiene un tamaño de 10000, sin pérdida de generalidad):

           Bomb     NoBomb
Detectado   TP          FN   
No detectado   FP          TN
            1         9999

Tu definición de "corrección" se llama Exactitud

$ Exactitud = \frac{TP + TN}{TP + TN + FP + FN}= \frac{9999}{10000} = 0.9999 $

Entonces matemáticamente tenemos 2 variantes: o bien (TP=1, TN=9998), o bien (TP=0, TN=9999)

Quieres obtener el valor de Precisión, que es

$ Precisión = \frac{TP}{TP + FN} $

Entonces en el primer caso tenemos una Precisión de 1, es decir que el sistema siempre detecta al terrorista, y en el segundo caso, Precisión=0, es decir que sistema nunca detecta a un terrorista. Y no tienes indicación de cuál es realmente tu caso.

El propósito de este ejercicio no es encontrar el valor de Precisión. Es mostrar que en caso de una distribución de clases altamente desequilibrada, el valor de Exactitud no es realmente indicativo y no debe utilizarse para medir el rendimiento del sistema. En realidad, para clases desequilibradas, los discriminadores tienden a detectar siempre la clase mayoritaria. Así que tu sistema de detección de bombas nunca encontrará a un terrorista, ¡y aún así tendrá una excelente Exactitud! ;)

0voto

mikero Puntos 120

De hecho, hay una relación Matriz de Confusión con Bayes: El teorema de Bayes es crucial para interpretar los resultados de los algoritmos de clasificación binaria. Mostraré que el teorema de Bayes es simplemente la relación entre la precisión y la recuperación: Supongamos que tenemos los casos A y B como 0 y 1. print(confusion_matrix(y_test, y_pred)) print(classification_report(y_test, y_pred))

dtype: int64
[[ 39 32]   71 =A
 [ 22 222]] 244 =B
  254 315

             Predict
Actual 0  [[ 39  32]    71
       1   [ 22 222]]  244
             61 254    315 

1 precisión: 222/254 =0.874 P(A/B)

2 recuperación: 222/244 =0.909 = Bayes P(B/A)

Entonces la recuperación (sensibilidad) resulta en Bayes P(B/A)

La probabilidad P(B/A) = 222/244 = 0.91 se llama la recuperación. Simplemente da el porcentaje de los 244 B reales que fueron predichos correctamente por nuestro algoritmo de clasificación. Vemos que el teorema de Bayes es simplemente una relación entre recuperación y precisión:

[Predecir * precisión / Real = recuperar] = Bayes

(P_B*P_AB)/P_A = 0.9098360655737705

(P(B)*P(A/B))/(P(A)) = 0.9098 = P(B/A) (254/315 * 222/254) / (244/315) = 0.9098

predecir * precisión / real = recuperar

prior * likelihood / evidence = posterior

precision / recall = real / predict

      precisión    recuperación  puntuación F1   soporte

   0       0.64      0.55      0.59        71
   1       0.87      0.91      0.89       244

exactitud 0.83 315

Puedes explorar más con un notebook jupyter bifurcado en python: https://github.com/maxkleiner/Bayes_theorem/blob/master/Bayes_Theorem.ipynb

0voto

Rakim Puntos 108

Es posible resolver esto a través del Teorema de Bayes o usando una Matriz de Confusión. Ambos llegarán a la misma ecuación.

Cuando dices que la prueba es correcta al 99.99% asumiremos que P(Detectado | Bomba) = P(No Detectado | Sin Bomba) = 99.99%. Si usamos la matriz de confusión tendremos lo siguiente:

  • Sensibilidad = P(Detectado | Bomba) = TP / (TP + FN) = 99.99%
  • Especificidad = P(No Detectado | Sin Bomba) = TN / (TN + FP) = 99.99%

Aquí está la solución usando tanto el Teorema de Bayes como la Matriz de Confusión

Usando la Matriz de Confusión

Detector

Bomba

Sin Bomba

Total

Detectado

Verdadero Positivo (TP)

Falso Positivo (FP)

Total Detectado

No Detectado

Falso Negativo (FN)

Verdadero Negativo (TN)

Total No Detectado

Total

Total Bombas

Total Sin Bombas

Total Personas

Lo que sabemos:

  • Total Personas = 10,000
  • Total Bombas = TP + FN = 1/10,000 = 0.01%
  • Total Sin Bombas = (TN + FP) = 9,999/10000 = 99.99%
  • Total = TP + FP + FN + TN = 10,000/10,000 = 100%
  • Sensibilidad = TP / (TP + FN) = TP / Total Bombas = 99.99%
  • Especificidad = TN / (TN + FP) = TN / Total Sin Bombas = 99.99%

Podremos completar todos los valores de la matriz de confusión de la siguiente manera:

  • TP = Sensibilidad x Total Bombas = 99.99% x 0.01% = 0.0099%
  • TN = Especificidad x Total Sin Bombas = 99.99% x 99.99% = 99.98%
  • FP = (1 - Especificidad) x Total Sin Bombas = 0.01% x 99.99% = 0.0099%
  • FN = (1 - Sensibilidad) x Total Bombas = 0.01% x 0.01% = 0.000001%

Detector

Bomba

Sin Bomba

Total

Detectado

99.99% x 0.01% = 0.0099%

0.01% x 99.99% = 0.0099%

~0.02%

No Detectado

0.01% x 0.01% = 0.000001%

99.99% x 99.99% = 99.98%

99.98%

Total

0.01%

99.99%

100%

La pregunta original es ¿Cuál es la probabilidad de que cuando explotó, la persona realmente tenía una bomba?

Esto es TP / (TP + FP)

FP = TP

Entonces TP / (2 x TP)

\= 1/2 = 50%

Usando el Teorema de Bayes

Contamos con la siguiente fórmula:

P(Bomba | Detectado) = (P(Detectado | Bomba) x P(Bomba)) / P(Detectado)

Conocemos lo siguiente

  • P(Detectado | Bomba) = 99.99%
  • P(Bomba) = 0.01%

P(Detectado) = P(Detectado | Bomba) x P(Bomba) + P(Detectado | No Bomba) x P(No Bomba)

  • P(Detectado | Bomba) = 1 - P(Detectado | Bomba) = 99.99% = 0.01%
  • P(No Bomba) = 1 - P(Bomba) = 1 - 0.01% = 99.99%

P(Detectado) = 99.99% x 0.01% + 0.01% x 99.99% = 2 x (99.99% x 0.01%)

Estamos resolviendo: P(Bomba | Detectado) = (P(Detectado | Bomba) x P(Bomba)) / P(Detectado)

Sustituyendo todos los valores: P(Bomba | Detectado) = (P(Detectado | Bomba) x P(Bomba)) / P(Detectado)

P(Bomba | Detectado) = (99.99% x 0.01%) / 2 x (99.99% x 0.01%) = 1/2 = 50%

Espero que esto ayude

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X