Nếm thử Bayes

Phân tích dữ liệu Bayesian với Python

Michal Oleszak

Machine Learning Engineer

Phân phối nhị thức

  • Phân phối rời rạc, chỉ nhận một trong hai giá trị:
    • Thành công (1)
    • Thất bại (0)
  • Một tham số: xác suất thành công.
  • Nhiệm vụ: từ danh sách các lần rút (thành công/thất bại), ước lượng xác suất thành công.
Phân tích dữ liệu Bayesian với Python

Phân phối nhị thức trong Python

Số lần thành công trong 100 lần thử:

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

 

np.random.binomial(100, 0.5)
44

Lấy mẫu từ nhị thức:

import numpy as np
np.random.binomial(1, 0.5, size=5)
array([1, 0, 0, 1, 1])
Phân tích dữ liệu Bayesian với Python

Xác suất mặt ngửa

  • get_heads_prob() - hàm tùy chỉnh
  • đầu vào: danh sách các lần tung đồng xu
  • đầu ra: danh sách, phân phối của xác suất thành công

 

import numpy as np
tosses = np.random.binomial(1, 0.5, size=1000)
print(tosses)
[1 0 0 0 1 1 0 1 1 ... ]
Phân tích dữ liệu Bayesian với Python

Xác suất mặt ngử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()

Một đường cong chuông đối xứng, đỉnh quanh giá trị trục X là 0,51.

Phân tích dữ liệu Bayesian với Python

Hãy tung vài đồng xu!

Phân tích dữ liệu Bayesian với Python

Preparing Video For Download...