ลิ้มรส Bayes

การวิเคราะห์ข้อมูลแบบเบย์เซียนด้วย 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()

เส้นโค้งรูประฆังสมมาตร มีจุดสูงสุดที่แกน X ประมาณ 0.51

การวิเคราะห์ข้อมูลแบบเบย์เซียนด้วย Python

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

การวิเคราะห์ข้อมูลแบบเบย์เซียนด้วย Python

Preparing Video For Download...