Probabilitate și teorema lui Bayes

Analiza bayesiană a datelor în Python

Michal Oleszak

Machine Learning Engineer

Teoria probabilităților

  • Exprimarea incertitudinii.
  • Un număr între 0 și 1.
    • P = 0   →   imposibil
    • P = 1   →   sigur
    • P = 0.5   →   șansă 50/50

 

  • P(ploaie mâine) = 0.75   →   75% șanse de ploaie mâine
Analiza bayesiană a datelor în Python

Reguli de probabilitate

Regula sumei

  • Probabilitatea evenimentului A sau B (evenimente independente)
  • SAU = adunare
  • Probabilitatea de a obține 2 sau 4 cu un zar

P(2 sau 4) = 1/6 + 1/6 = 0.33333... = 33.3%

Regula produsului

  • Probabilitatea evenimentului A și B (evenimente independente)
  • ȘI = înmulțire
  • Probabilitatea de a obține 2 și apoi 4 cu un zar

P(2 și 4) = 1/6 * 1/6 = 0.02777... = 2.8%

Analiza bayesiană a datelor în Python

Probabilitate condiționată

  • Probabilitatea unui eveniment, cu condiția că un alt eveniment a avut loc.
  • P(A | B)

 

  • P(portocaliu) = 2/3   →   necondiționată
  • P(albastru) = 1/3   →   necondiționată

 

  • P(albastru | portocaliu) = 1/2   →   condiționată
  • P(portocaliu | albastru) = 1   →   condiționată

Reprezentare schematică a trei bile într-o cutie. Două sunt portocalii, una este albastră.

Analiza bayesiană a datelor în Python

Teorema lui Bayes

  • O metodă de calcul a probabilității condiționate pe baza altor probabilități cunoscute.

 

$$P(A|B) = \frac{P(B|A) * P(A)}{P(B)}$$

Analiza bayesiană a datelor în Python

Teorema lui Bayes

  • O metodă de calcul a probabilității condiționate pe baza altor probabilități cunoscute.

 

$$P(\text{accident}|\text{slippery}) = \frac{P(\text{slippery}|\text{accident}) * P(\text{accident})}{P(\text{slippery})}$$

road_conditions.head()
     accident   slippery
0       False       True
1        True       True
2       False      False
3       False      False
4       False      False
Analiza bayesiană a datelor în Python

Teorema lui Bayes în practică

 

$$P(\text{accident}|\text{slippery}) = \frac{P(\text{slippery}|\text{accident}) * P(\text{accident})}{P(\text{slippery})}$$

# Unconditional probability of an accident
p_accident = road_conditions["accident"].mean()  # 0.0625


# Unconditional probability of the road being slippery p_slippery = road_conditions["slippery"].mean() # 0.0892
# Probability of the road being slippery given there is an accident p_slippery_given_accident = road_conditions.loc[road_conditions["accident"]]["slippery"].mean() # 0.7142
# Probability of an accident given the road is slippery p_accident_given_slippery = p_slippery_given_accident * p_accident / p_slippery # 0.5
Analiza bayesiană a datelor în Python

Să exersăm!

Analiza bayesiană a datelor în Python

Preparing Video For Download...