Sannolikhet och Bayes sats

Bayesiansk dataanalys i Python

Michal Oleszak

Machine Learning Engineer

Sannolikhetsteori

  • Uttryck för osäkerhet.
  • Ett tal mellan 0 och 1.
    • P = 0   →   omöjligt
    • P = 1   →   säkert
    • P = 0,5   →   50/50 chans

 

  • P(regn imorgon) = 0,75   →   75% chans för regn imorgon
Bayesiansk dataanalys i Python

Sannolikhetsregler

Additionsregeln

  • Sannolikheten för A eller B (oberoende händelser)
  • ELLER = addition
  • Sannolikheten att slå 2 eller 4 med en tärning

P(2 eller 4) = 1/6 + 1/6 = 0,33333... = 33,3%

Multiplikationsregeln

  • Sannolikheten för A och B (oberoende händelser)
  • OCH = multiplikation
  • Sannolikheten att slå 2 och sedan 4 med en tärning

P(2 och 4) = 1/6 * 1/6 = 0,02777... = 2,8%

Bayesiansk dataanalys i Python

Villkorlig sannolikhet

  • Sannolikheten för en händelse, givet att en annan händelse har inträffat.
  • P(A | B)

 

  • P(orange) = 2/3   →   ovillkorlig
  • P(blå) = 1/3   →   ovillkorlig

 

  • P(blå | orange) = 1/2   →   villkorlig
  • P(orange | blå) = 1   →   villkorlig

En schematisk bild av tre bollar i en låda. Två är orange, en är blå.

Bayesiansk dataanalys i Python

Bayes sats

  • Ett sätt att beräkna villkorlig sannolikhet när vi känner till vissa andra sannolikheter.

 

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

Bayesiansk dataanalys i Python

Bayes sats

  • Ett sätt att beräkna villkorlig sannolikhet när vi känner till vissa andra sannolikheter.

 

$$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
Bayesiansk dataanalys i Python

Bayes sats i praktiken

 

$$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
Bayesiansk dataanalys i Python

Nu kör vi en övning!

Bayesiansk dataanalys i Python

Preparing Video For Download...