Come applicare il teorema di bayes in python
Il teorema di Bayes afferma quanto segue per due eventi A e B :
P(A|B) = P(A)*P(B|A) / P(B)
Oro:
- P(A|B): la probabilità che si sia verificato l’evento A, dato l’evento B.
- P(B|A): La probabilità che si sia verificato l’evento B, dato che si è verificato l’evento A.
- P(A): la probabilità dell’evento A.
- P(B): la probabilità dell’evento B.
Ad esempio, supponiamo che la probabilità che il tempo sia nuvoloso sia del 40%.
Supponiamo anche che la probabilità di pioggia in un dato giorno sia del 20%.
Supponiamo inoltre che la probabilità che ci siano nuvole in una giornata piovosa sia dell’85%.
Se fuori è nuvoloso in un dato giorno, quali sono le probabilità che piova quel giorno?
Soluzione :
- P(nuvoloso) = 0,40
- P(pioggia) = 0,20
- P(nuvoloso | pioggia) = 0,85
Possiamo quindi calcolare:
- P(pioggia | nuvoloso) = P(pioggia) * P(nuvoloso | pioggia) / P(nuvoloso)
- P(pioggia | nuvoloso) = 0,20 * 0,85 / 0,40
- P(pioggia | nuvoloso) = 0,425
Se fuori è nuvoloso in un dato giorno, la probabilità che piova quel giorno è del 42,5% .
Possiamo creare la seguente semplice funzione per applicare il teorema di Bayes in Python:
def bayesTheorem (pA, pB, pBA): return pA * pBA / pB
L’esempio seguente mostra come utilizzare questa funzione nella pratica.
Esempio: teorema di Bayes in Python
Supponiamo di conoscere le seguenti probabilità:
- P(pioggia) = 0,20
- P(nuvoloso) = 0,40
- P(nuvoloso | pioggia) = 0,85
Per calcolare P(pioggia | nuvoloso), possiamo usare la seguente sintassi:
#define function for Bayes' theorem def bayesTheorem (pA, pB, pBA): return pA * pBA / pB #define probabilities pRain = 0.2 pCloudy = 0.4 pCloudyRain = 0.85 #use function to calculate conditional probability bayesTheorem(pRain, pCloudy, pCloudyRain) 0.425
Questo ci dice che se fuori è nuvoloso in un dato giorno, la probabilità che piova quel giorno è 0,425 o 42,5% .
Questo corrisponde al valore che abbiamo calcolato manualmente in precedenza.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in Python:
Come calcolare la probabilità condizionale in Python
Come calcolare il valore atteso in Python
Come calcolare una media troncata in Python