Kansrekening en de stelling van Bayes

Bayesian Data Analysis in Python

Michal Oleszak

Machine Learning Engineer

Kansrekening

  • Uitspraak over onzekerheid.
  • Een getal tussen 0 en 1.
    • P = 0   →   onmogelijk
    • P = 1   →   zeker
    • P = 0.5   →   50/50 kans

 

  • P(regen morgen) = 0.75   →   75% kans op regen morgen
Bayesian Data Analysis in Python

Kansregels

Somregel

  • Kans op A of B (onafhankelijke gebeurtenissen)
  • OF = optellen
  • Kans op 2 of 4 gooien met een dobbelsteen

P(2 of 4) = 1/6 + 1/6 = 0.33333... = 33,3%

Productregel

  • Kans op A en B (onafhankelijke gebeurtenissen)
  • EN = vermenigvuldigen
  • Kans op 2 en daarna 4 gooien met een dobbelsteen

P(2 en 4) = 1/6 * 1/6 = 0.02777... = 2,8%

Bayesian Data Analysis in Python

Voorwaardelijke kans

  • Kans op een gebeurtenis, gegeven dat een andere gebeurtenis is opgetreden.
  • P(A | B)

 

  • P(oranje) = 2/3   →   onvoorwaardelijk
  • P(blauw) = 1/3   →   onvoorwaardelijk

 

  • P(blauw | oranje) = 1/2   →   voorwaardelijk
  • P(oranje | blauw) = 1   →   voorwaardelijk

Een schematische afbeelding van drie ballen in een doos. Twee zijn oranje, één is blauw.

Bayesian Data Analysis in Python

De stelling van Bayes

  • Een manier om voorwaardelijke kansen te berekenen als we andere kansen kennen.

 

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

Bayesian Data Analysis in Python

De stelling van Bayes

  • Een manier om voorwaardelijke kansen te berekenen als we andere kansen kennen.

 

$$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
Bayesian Data Analysis in Python

Bayes in de praktijk

 

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

# Onvoorwaardelijke kans op een ongeluk
p_accident = road_conditions["accident"].mean()  # 0.0625


# Onvoorwaardelijke kans dat de weg glad is p_slippery = road_conditions["slippery"].mean() # 0.0892
# Kans dat de weg glad is gegeven dat er een ongeluk is p_slippery_given_accident = road_conditions.loc[road_conditions["accident"]]["slippery"].mean() # 0.7142
# Kans op een ongeluk gegeven dat de weg glad is p_accident_given_slippery = p_slippery_given_accident * p_accident / p_slippery # 0.5
Bayesian Data Analysis in Python

Laten we oefenen!

Bayesian Data Analysis in Python

Preparing Video For Download...