Degustando Bayes

Análise de Dados Bayesiana em Python

Michal Oleszak

Machine Learning Engineer

Distribuição binomial

  • Uma distribuição discreta, só pode assumir dois valores:
    • Sucesso (1)
    • Falha (0)
  • Um parâmetro: probabilidade de sucesso.
  • Tarefa: dada uma lista de lançamentos (sucessos e falhas), estimar a probabilidade de sucesso.
Análise de Dados Bayesiana em Python

Distribuição binomial em Python

Número de sucessos em 100 tentativas:

import numpy as np
np.random.binomial(100, 0.5)
51

 

np.random.binomial(100, 0.5)
44

Gerar amostras de uma binomial:

import numpy as np
np.random.binomial(1, 0.5, size=5)
array([1, 0, 0, 1, 1])
Análise de Dados Bayesiana em Python

Probabilidade de dar cara

  • get_heads_prob() - uma função personalizada
  • entrada: uma lista de caras e coroas
  • saída: uma lista, a distribuição da probabilidade de sucesso

 

import numpy as np
tosses = np.random.binomial(1, 0.5, size=1000)
print(tosses)
[1 0 0 0 1 1 0 1 1 ... ]
Análise de Dados Bayesiana em Python

Probabilidade de dar cara

heads_prob = get_heads_prob(tosses)
print(heads_prob)
[0.47815295 0.51679212 0.51684779 ... ]
import matplotlib.pyplot as plt
import seaborn as sns

sns.kdeplot(heads_prob, 
            shade=True, 
            label="heads probabilty")
plt.show()

Uma curva simétrica em formato de sino, com pico perto do valor 0,51 no eixo X.

Análise de Dados Bayesiana em Python

Vamos jogar algumas moedas!

Análise de Dados Bayesiana em Python

Preparing Video For Download...