Probabilidade e Teorema de Bayes

Análise de Dados Bayesiana em Python

Michal Oleszak

Machine Learning Engineer

Teoria da probabilidade

  • Declaração de incerteza.
  • Um número entre 0 e 1.
    • P = 0   →   impossível
    • P = 1   →   certo
    • P = 0.5   →   chance de 50/50

 

  • P(chuva amanhã) = 0.75   →   75% de chance de chover amanhã
Análise de Dados Bayesiana em Python

Regras de probabilidade

Regra da soma

  • Probabilidade de A ou B (eventos independentes)
  • OU = adição
  • Probabilidade de tirar 2 ou 4 em um dado

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

Regra do produto

  • Probabilidade de A e B (eventos independentes)
  • E = multiplicação
  • Probabilidade de tirar 2 e depois 4 em um dado

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

Análise de Dados Bayesiana em Python

Probabilidade condicional

  • Probabilidade de um evento ocorrer, dado que outro ocorreu.
  • P(A | B)

 

  • P(laranja) = 2/3   →   incondicional
  • P(azul) = 1/3   →   incondicional

 

  • P(azul | laranja) = 1/2   →   condicional
  • P(laranja | azul) = 1   →   condicional

Um esquema com três bolas em uma caixa. Duas são laranja, uma é azul.

Análise de Dados Bayesiana em Python

Teorema de Bayes

  • Um jeito de calcular probabilidade condicional quando conhecemos outras probabilidades.

 

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

Análise de Dados Bayesiana em Python

Teorema de Bayes

  • Um jeito de calcular probabilidade condicional quando conhecemos outras probabilidades.

 

$$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
Análise de Dados Bayesiana em Python

Teorema de Bayes na prática

 

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

# Probabilidade incondicional de um acidente
p_accident = road_conditions["accident"].mean()  # 0.0625


# Probabilidade incondicional de a pista estar escorregadia p_slippery = road_conditions["slippery"].mean() # 0.0892
# Probabilidade de a pista estar escorregadia dado que houve acidente p_slippery_given_accident = road_conditions.loc[road_conditions["accident"]]["slippery"].mean() # 0.7142
# Probabilidade de um acidente dado que a pista está escorregadia p_accident_given_slippery = p_slippery_given_accident * p_accident / p_slippery # 0.5
Análise de Dados Bayesiana em Python

Vamos praticar!

Análise de Dados Bayesiana em Python

Preparing Video For Download...