Як застосувати теорему байєса в python
Теорема Байєса стверджує наступне для двох подій A і B :
P(A|B) = P(A)*P(B|A) / P(B)
золото:
- P(A|B): ймовірність того, що подія A, враховуючи подію B, сталася.
- P(B|A): ймовірність того, що подія B, враховуючи, що подія A сталася, відбулася.
- P(A): ймовірність події A.
- P(B): ймовірність події B.
Наприклад, припустимо, що ймовірність того, що погода хмарна, становить 40%.
Припустимо також, що ймовірність дощу в певний день становить 20%.
Припустимо також, що ймовірність того, що в дощовий день будуть хмари, становить 85%.
Якщо в певний день надворі хмарно, яка ймовірність того, що цього дня буде дощ?
рішення :
- P(хмарно) = 0,40
- P(дощ) = 0,20
- P(хмарно | дощ) = 0,85
Таким чином, ми можемо розрахувати:
- P(дощ | хмарно) = P(дощ) * P(хмарно | дощ) / P(хмарно)
- P(дощ | хмарно) = 0,20 * 0,85 / 0,40
- P(дощ | хмарно) = 0,425
Якщо в певний день на вулиці хмарно, ймовірність дощу в цей день становить 42,5% .
Ми можемо створити таку просту функцію для застосування теореми Байєса в Python:
def bayesTheorem (pA, pB, pBA): return pA * pBA / pB
У наступному прикладі показано, як використовувати цю функцію на практиці.
Приклад: теорема Байєса в Python
Припустимо, нам відомі такі ймовірності:
- P(дощ) = 0,20
- P(хмарно) = 0,40
- P(хмарно | дощ) = 0,85
Щоб обчислити P(дощ | хмарно), ми можемо використати такий синтаксис:
#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
Це говорить нам про те, що якщо на вулиці хмарно в певний день, ймовірність дощу в цей день становить 0,425 або 42,5% .
Це відповідає значенню, яке ми обчислили раніше вручну.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в Python:
Як обчислити умовну ймовірність у Python
Як розрахувати очікуване значення в Python
Як обчислити зрізане середнє в Python