Pravděpodobnost a Bayesův teorém

Bayesian Data Analysis in Python

Michal Oleszak

Machine Learning Engineer

Teorie pravděpodobnosti

  • Vyjádření neurčitosti.
  • Číslo mezi 0 a 1.
    • P = 0   →   nemožné
    • P = 1   →   jisté
    • P = 0.5   →   šance 50/50

 

  • P(déšť zítra) = 0.75   →   75% šance na déšť zítra
Bayesian Data Analysis in Python

Pravidla pravděpodobnosti

Pravidlo součtu

  • Pravděpodobnost A nebo B (nezávislé jevy)
  • NEBO = sčítání
  • Pravděpodobnost, že padne 2 nebo 4 na kostce

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

Pravidlo součinu

  • Pravděpodobnost A a B (nezávislé jevy)
  • A = násobení
  • Pravděpodobnost, že padne 2 a pak 4 na kostce

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

Bayesian Data Analysis in Python

Podmíněná pravděpodobnost

  • Pravděpodobnost jevu za předpokladu, že nastal jiný jev.
  • P(A | B)

 

  • P(oranžový) = 2/3   →   nepodmíněná
  • P(modrý) = 1/3   →   nepodmíněná

 

  • P(modrý | oranžový) = 1/2   →   podmíněná
  • P(oranžový | modrý) = 1   →   podmíněná

Schematické znázornění tří míčků v krabici. Dva jsou oranžové, jeden je modrý.

Bayesian Data Analysis in Python

Bayesův teorém

  • Způsob výpočtu podmíněné pravděpodobnosti, pokud známe jiné pravděpodobnosti.

 

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

Bayesian Data Analysis in Python

Bayesův teorém

  • Způsob výpočtu podmíněné pravděpodobnosti, pokud známe jiné pravděpodobnosti.

 

$$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ův teorém v praxi

 

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

Pojďme si procvičit!

Bayesian Data Analysis in Python

Preparing Video For Download...