Vamos virar uma moeda em Python

Fundamentos de Probabilidade em Python

Alexander A. Ramírez M.

CEO @ Synergy Vision

Probabilidade

  • Fundamento de Data Science
  • Permite gerar dados a partir de modelos
  • Estudar regularidades em fenômenos aleatórios
Fundamentos de Probabilidade em Python

Ganhe intuição

...com caras e coroas

Cara ou coroa

Fundamentos de Probabilidade em Python

Apenas dois resultados

Cara ou coroa

Um centavo: cara e coroa

Fundamentos de Probabilidade em Python

Virando uma moeda em Python

Experimento aleatório de Bernoulli

from scipy.stats import bernoulli
bernoulli.rvs(p=0.5, size=1)
array([0])

Outro sorteio

bernoulli.rvs(p=0.5, size=1)
array([1])
Fundamentos de Probabilidade em Python

Virando várias moedas

Altere o parâmetro size para virar mais...

bernoulli.rvs(p=0.5, size=10)
array([0, 0, 0, 0, 0, 0, 1, 1, 0, 0])

Quantas caras?

sum(bernoulli.rvs(p=0.5, size=10))
5
Fundamentos de Probabilidade em Python

Virando várias moedas (Cont.)

Outro sorteio...

sum(bernoulli.rvs(p=0.5, size=10))
2
Fundamentos de Probabilidade em Python

Virando várias moedas (Cont.)

Variável aleatória binomial

from scipy.stats import binom
binom.rvs(n=10, p=0.5, size=1)
array([7])

Muitos sorteios

binom.rvs(n=10, p=0.5, size=10)
array([6, 2, 3, 5, 5, 5, 5, 4, 6, 6])
Fundamentos de Probabilidade em Python

Virando várias moedas (Cont.)

Moeda viciada

binom.rvs(n=10, p=0.3, size=10)
array([3, 4, 3, 3, 2, 2, 2, 2, 3, 6])
Fundamentos de Probabilidade em Python

Semente do gerador aleatório

  • Use o parâmetro random_state da função rvs()
from scipy.stats import binom
binom.rvs(n=10, p=0.5, size=1, random_state=42)
  • Use numpy.random.seed()
import numpy as np
np.random.seed(42)
Fundamentos de Probabilidade em Python

Semente do gerador aleatório (Cont.)

Virando 10 moedas justas com semente aleatória

from scipy.stats import binom
import numpy as np

np.random.seed(42)
binom.rvs(n=10, p=0.5, size=1)
array([4])
Fundamentos de Probabilidade em Python

Vamos praticar virar moedas em Python

Fundamentos de Probabilidade em Python

Preparing Video For Download...