Hãy tung đồng xu bằng Python

Nền tảng Xác suất trong Python

Alexander A. Ramírez M.

CEO @ Synergy Vision

Xác suất

  • Nền tảng Khoa học Dữ liệu
  • Tạo dữ liệu từ mô hình
  • Nghiên cứu quy luật của hiện tượng ngẫu nhiên
Nền tảng Xác suất trong Python

Tăng trực giác

...với các lần tung xu

Tung đồng xu

Nền tảng Xác suất trong Python

Chỉ có hai kết quả

Sấp hay Ngửa

Mặt sấp và ngửa của đồng xu 1 cent

Nền tảng Xác suất trong Python

Tung một đồng xu trong Python

Thử nghiệm Bernoulli

from scipy.stats import bernoulli
bernoulli.rvs(p=0.5, size=1)
array([0])

Rút nữa

bernoulli.rvs(p=0.5, size=1)
array([1])
Nền tảng Xác suất trong Python

Tung nhiều đồng xu

Đổi tham số size để tung nhiều hơn...

bernoulli.rvs(p=0.5, size=10)
array([0, 0, 0, 0, 0, 0, 1, 1, 0, 0])

Có bao nhiêu mặt ngửa?

sum(bernoulli.rvs(p=0.5, size=10))
5
Nền tảng Xác suất trong Python

Tung nhiều đồng xu (tiếp)

Rút nữa...

sum(bernoulli.rvs(p=0.5, size=10))
2
Nền tảng Xác suất trong Python

Tung nhiều đồng xu (tiếp)

Biến ngẫu nhiên nhị thức

from scipy.stats import binom
binom.rvs(n=10, p=0.5, size=1)
array([7])

Nhiều lần rút

binom.rvs(n=10, p=0.5, size=10)
array([6, 2, 3, 5, 5, 5, 5, 4, 6, 6])
Nền tảng Xác suất trong Python

Tung nhiều đồng xu (tiếp)

Đồng xu lệch

binom.rvs(n=10, p=0.3, size=10)
array([3, 4, 3, 3, 2, 2, 2, 2, 3, 6])
Nền tảng Xác suất trong Python

Hạt giống bộ sinh số ngẫu nhiên

  • Dùng tham số random_state của hàm rvs()
from scipy.stats import binom
binom.rvs(n=10, p=0.5, size=1, random_state=42)
  • Dùng numpy.random.seed()
import numpy as np
np.random.seed(42)
Nền tảng Xác suất trong Python

Hạt giống bộ sinh số ngẫu nhiên (tiếp)

Tung 10 đồng xu công bằng với hạt giống ngẫu nhiên

from scipy.stats import binom
import numpy as np

np.random.seed(42)
binom.rvs(n=10, p=0.5, size=1)
array([4])
Nền tảng Xác suất trong Python

Luyện tung đồng xu bằng Python

Nền tảng Xác suất trong Python

Preparing Video For Download...