Як застосувати теорему байєса в 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *