Скуштуємо Байєса

Баєсівський аналіз даних у Python

Michal Oleszak

Machine Learning Engineer

Біноміальний розподіл

  • Дискретний розподіл, приймає лише два значення:
    • Успіх (1)
    • Невдача (0)
  • Один параметр: імовірність успіху.
  • Завдання: маючи список кидків (успіхи та невдачі), оцінити імовірність успіху.
Баєсівський аналіз даних у Python

Біноміальний розподіл у Python

Кількість успіхів у 100 випробуваннях:

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

 

np.random.binomial(100, 0.5)
44

Отримайте вибірки з біноміального розподілу:

import numpy as np
np.random.binomial(1, 0.5, size=5)
array([1, 0, 0, 1, 1])
Баєсівський аналіз даних у Python

Імовірність герба

  • get_heads_prob() — користувацька функція
  • вхід: список підкидань монети
  • вихід: список, розподіл імовірності успіху

 

import numpy as np
tosses = np.random.binomial(1, 0.5, size=1000)
print(tosses)
[1 0 0 0 1 1 0 1 1 ... ]
Баєсівський аналіз даних у Python

Імовірність герба

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

Симетрична, дзвоноподібна крива з піком біля значення 0,51 на осі X.

Баєсівський аналіз даних у Python

Давайте підкинемо кілька монет!

Баєсівський аналіз даних у Python

Preparing Video For Download...