Smak Bayesa

Bayesowska analiza danych w Pythonie

Michal Oleszak

Machine Learning Engineer

Rozkład dwumianowy

  • Rozkład dyskretny, przyjmujący jedną z dwóch wartości:
    • Sukces (1)
    • Porażka (0)
  • Jeden parametr: prawdopodobieństwo sukcesu.
  • Zadanie: na podstawie listy wyników (sukcesy i porażki) oszacować prawdopodobieństwo sukcesu.
Bayesowska analiza danych w Pythonie

Rozkład dwumianowy w Pythonie

Liczba sukcesów w 100 próbach:

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

 

np.random.binomial(100, 0.5)
44

Losowanie z rozkładu dwumianowego:

import numpy as np
np.random.binomial(1, 0.5, size=5)
array([1, 0, 0, 1, 1])
Bayesowska analiza danych w Pythonie

Prawdopodobieństwo orła

  • get_heads_prob() – funkcja niestandardowa
  • wejście: lista rzutów monetą
  • wyjście: lista z rozkładem prawdopodobieństwa sukcesu

 

import numpy as np
tosses = np.random.binomial(1, 0.5, size=1000)
print(tosses)
[1 0 0 0 1 1 0 1 1 ... ]
Bayesowska analiza danych w Pythonie

Prawdopodobieństwo orła

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

Symetryczna krzywa dzwonowa z szczytem przy wartości 0,51 na osi X.

Bayesowska analiza danych w Pythonie

Rzucamy monetą!

Bayesowska analiza danych w Pythonie

Preparing Video For Download...