มาโยนเหรียญใน Python กัน

พื้นฐานความน่าจะเป็นด้วย Python

Alexander A. Ramírez M.

CEO @ Synergy Vision

ความน่าจะเป็น

  • รากฐานของวิทยาศาสตร์ข้อมูล
  • ใช้สร้างข้อมูลจากโมเดลได้
  • ศึกษารูปแบบของปรากฏการณ์แบบสุ่ม
พื้นฐานความน่าจะเป็นด้วย Python

สร้างความเข้าใจเชิงสัญชาตญาณ

...ด้วยการโยนเหรียญ

การโยนเหรียญ

พื้นฐานความน่าจะเป็นด้วย Python

มีเพียงสองผลลัพธ์

หัวหรือก้อย

ด้านหัวและด้านก้อยของเหรียญเซ็นต์

พื้นฐานความน่าจะเป็นด้วย Python

โยนเหรียญใน Python

การทดลองแบบสุ่มแบร์นูลลี

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

สุ่มอีกครั้ง

bernoulli.rvs(p=0.5, size=1)
array([1])
พื้นฐานความน่าจะเป็นด้วย Python

โยนเหรียญหลายครั้ง

เปลี่ยนพารามิเตอร์ size เพื่อโยนเพิ่มขึ้น...

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

ได้หัวกี่ครั้ง?

sum(bernoulli.rvs(p=0.5, size=10))
5
พื้นฐานความน่าจะเป็นด้วย Python

โยนเหรียญหลายครั้ง (ต่อ)

สุ่มอีกครั้ง...

sum(bernoulli.rvs(p=0.5, size=10))
2
พื้นฐานความน่าจะเป็นด้วย Python

โยนเหรียญหลายครั้ง (ต่อ)

ตัวแปรสุ่มแบบทวินาม

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

สุ่มหลายครั้ง

binom.rvs(n=10, p=0.5, size=10)
array([6, 2, 3, 5, 5, 5, 5, 4, 6, 6])
พื้นฐานความน่าจะเป็นด้วย Python

โยนเหรียญหลายครั้ง (ต่อ)

การสุ่มด้วยเหรียญที่ไม่สมดุล

binom.rvs(n=10, p=0.3, size=10)
array([3, 4, 3, 3, 2, 2, 2, 2, 3, 6])
พื้นฐานความน่าจะเป็นด้วย Python

ค่า seed ของตัวสร้างเลขสุ่ม

  • ใช้พารามิเตอร์ random_state ของฟังก์ชัน rvs()
from scipy.stats import binom
binom.rvs(n=10, p=0.5, size=1, random_state=42)
  • ใช้ numpy.random.seed()
import numpy as np
np.random.seed(42)
พื้นฐานความน่าจะเป็นด้วย Python

ค่า seed ของตัวสร้างเลขสุ่ม (ต่อ)

โยนเหรียญสมดุล 10 เหรียญโดยกำหนด seed

from scipy.stats import binom
import numpy as np

np.random.seed(42)
binom.rvs(n=10, p=0.5, size=1)
array([4])
พื้นฐานความน่าจะเป็นด้วย Python

มาฝึกโยนเหรียญใน Python กันเถอะ!

พื้นฐานความน่าจะเป็นด้วย Python

Preparing Video For Download...