Assaggiamo Bayes

Analisi dei dati bayesiana in Python

Michal Oleszak

Machine Learning Engineer

Distribuzione binomiale

  • Una distribuzione discreta può assumere solo due valori:
    • Successo (1)
    • Insuccesso (0)
  • Un parametro: probabilità di successo.
  • Obiettivo: data una lista di lanci (successi e insuccessi), stimare la probabilità di successo.
Analisi dei dati bayesiana in Python

Distribuzione binomiale in Python

Numero di successi in 100 prove:

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

 

np.random.binomial(100, 0.5)
44

Ottieni estrazioni da una binomiale:

import numpy as np
np.random.binomial(1, 0.5, size=5)
array([1, 0, 0, 1, 1])
Analisi dei dati bayesiana in Python

Probabilità di testa

  • get_heads_prob() - una funzione personalizzata
  • input: una lista di lanci di moneta
  • output: una lista, la distribuzione della probabilità di successo

 

import numpy as np
tosses = np.random.binomial(1, 0.5, size=1000)
print(tosses)
[1 0 0 0 1 1 0 1 1 ... ]
Analisi dei dati bayesiana in Python

Probabilità di testa

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()

Una curva simmetrica a campana con picco intorno a 0,51 sull'asse X.

Analisi dei dati bayesiana in Python

Lanciamo qualche moneta!

Analisi dei dati bayesiana in Python

Preparing Video For Download...