Lanciamo una moneta in Python

Fondamenti di probabilità in Python

Alexander A. Ramírez M.

CEO @ Synergy Vision

Probabilità

  • Fondamento della Data Science
  • Permette di generare dati da modelli
  • Studia le regolarità nei fenomeni casuali
Fondamenti di probabilità in Python

Fatti un’idea

...con lanci di moneta

Lancio di moneta

Fondamenti di probabilità in Python

Solo due esiti

Testa o croce

Testa e croce di un centesimo

Fondamenti di probabilità in Python

Lanciare una moneta in Python

Esperimento di Bernoulli

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

Un’altra estrazione

bernoulli.rvs(p=0.5, size=1)
array([1])
Fondamenti di probabilità in Python

Lanciare più monete

Cambia il parametro size per più lanci...

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

Quante teste?

sum(bernoulli.rvs(p=0.5, size=10))
5
Fondamenti di probabilità in Python

Lanciare più monete (Cont.)

Un’altra estrazione...

sum(bernoulli.rvs(p=0.5, size=10))
2
Fondamenti di probabilità in Python

Lanciare più monete (Cont.)

Variabile casuale binomiale

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

Molte estrazioni

binom.rvs(n=10, p=0.5, size=10)
array([6, 2, 3, 5, 5, 5, 5, 4, 6, 6])
Fondamenti di probabilità in Python

Lanciare più monete (Cont.)

Estrazioni con moneta sbilanciata

binom.rvs(n=10, p=0.3, size=10)
array([3, 4, 3, 3, 2, 2, 2, 2, 3, 6])
Fondamenti di probabilità in Python

Seed del generatore casuale

  • Usa il parametro random_state della funzione rvs()
from scipy.stats import binom
binom.rvs(n=10, p=0.5, size=1, random_state=42)
  • Usa numpy.random.seed()
import numpy as np
np.random.seed(42)
Fondamenti di probabilità in Python

Seed del generatore casuale (Cont.)

Lancia 10 monete eque con un seed

from scipy.stats import binom
import numpy as np

np.random.seed(42)
binom.rvs(n=10, p=0.5, size=1)
array([4])
Fondamenti di probabilità in Python

Esercitiamo i lanci di moneta in Python

Fondamenti di probabilità in Python

Preparing Video For Download...