Att smaka på Bayes

Bayesiansk dataanalys i Python

Michal Oleszak

Machine Learning Engineer

Binomialfördelning

  • En diskret fördelning som bara kan anta ett av två värden:
    • Lyckat utfall (1)
    • Misslyckat utfall (0)
  • En parameter: sannolikheten för lyckat utfall.
  • Uppgift: givet en lista med dragningar (lyckade och misslyckade), skatta sannolikheten för lyckat utfall.
Bayesiansk dataanalys i Python

Binomialfördelning i Python

Antal lyckade utfall i 100 försök:

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

 

np.random.binomial(100, 0.5)
44

Hämta dragningar från en binomialfördelning:

import numpy as np
np.random.binomial(1, 0.5, size=5)
array([1, 0, 0, 1, 1])
Bayesiansk dataanalys i Python

Sannolikhet för krona

  • get_heads_prob() – en anpassad funktion
  • indata: en lista med myntkast
  • utdata: en lista med sannolikhetsfördelningen för lyckat utfall

 

import numpy as np
tosses = np.random.binomial(1, 0.5, size=1000)
print(tosses)
[1 0 0 0 1 1 0 1 1 ... ]
Bayesiansk dataanalys i Python

Sannolikhet för krona

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

En symmetrisk, klockformad kurva med toppen vid ungefär 0,51 på x-axeln.

Bayesiansk dataanalys i Python

Nu kör vi en övning!

Bayesiansk dataanalys i Python

Preparing Video For Download...