Probabilité et théorème de Bayes

Analyse bayésienne des données en Python

Michal Oleszak

Machine Learning Engineer

Théorie des probabilités

  • Énoncé d'incertitude.
  • Un nombre entre 0 et 1.
    • P = 0   →   impossible
    • P = 1   →   certain
    • P = 0.5   →   50/50

 

  • P(pluie demain) = 0.75   →   75 % de chances de pluie demain
Analyse bayésienne des données en Python

Règles de probabilité

Règle de somme

  • Probabilité de A ou B (événements indépendants)
  • OU = addition
  • Probabilité d'obtenir 2 ou 4 avec un dé

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

Règle de produit

  • Probabilité de A et B (événements indépendants)
  • ET = multiplication
  • Probabilité d'obtenir 2 puis 4 avec un dé

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

Analyse bayésienne des données en Python

Probabilité conditionnelle

  • Probabilité qu'un événement survienne, étant donné que un autre est survenu.
  • P(A | B)

 

  • P(orange) = 2/3   →   inconditionnelle
  • P(bleu) = 1/3   →   inconditionnelle

 

  • P(bleu | orange) = 1/2   →   conditionnelle
  • P(orange | bleu) = 1   →   conditionnelle

Schéma : trois balles dans une boîte. Deux sont orange, une est bleue.

Analyse bayésienne des données en Python

Théorème de Bayes

  • Façon de calculer une probabilité conditionnelle à partir d'autres probabilités connues.

 

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

Analyse bayésienne des données en Python

Théorème de Bayes

  • Façon de calculer une probabilité conditionnelle à partir d'autres probabilités connues.

 

$$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
Analyse bayésienne des données en Python

Théorème de Bayes : en pratique

 

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

# Probabilité inconditionnelle d'un accident
p_accident = road_conditions["accident"].mean()  # 0.0625


# Probabilité inconditionnelle que la route soit glissante p_slippery = road_conditions["slippery"].mean() # 0.0892
# Probabilité que la route soit glissante sachant qu'il y a un accident p_slippery_given_accident = road_conditions.loc[road_conditions["accident"]]["slippery"].mean() # 0.7142
# Probabilité d'un accident sachant que la route est glissante p_accident_given_slippery = p_slippery_given_accident * p_accident / p_slippery # 0.5
Analyse bayésienne des données en Python

Passons à la pratique !

Analyse bayésienne des données en Python

Preparing Video For Download...