ベイズを味見する

Pythonで学ぶBayesianデータ分析

Michal Oleszak

Machine Learning Engineer

二項分布

  • 離散分布。値は2つのみ:
    • 成功 (1)
    • 失敗 (0)
  • パラメータは1つ: 成功確率。
  • 課題: 成功/失敗の列から成功確率を推定する。
Pythonで学ぶBayesianデータ分析

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で学ぶBayesianデータ分析

表の確率

  • 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で学ぶBayesianデータ分析

表の確率

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

X軸0.51付近でピークのある左右対称の鐘形曲線。

Pythonで学ぶBayesianデータ分析

コインを投げてみよう!

Pythonで学ぶBayesianデータ分析

Preparing Video For Download...