ทฤษฎีความน่าจะเป็นและทฤษฎีของเบส์

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

Michal Oleszak

Machine Learning Engineer

ทฤษฎีความน่าจะเป็น

  • การแสดงถึงความไม่แน่นอน
  • ตัวเลขระหว่าง 0 ถึง 1
    • P = 0   →   เป็นไปไม่ได้
    • P = 1   →   แน่นอน
    • P = 0.5   →   โอกาส 50/50

 

  • P(ฝนตกพรุ่งนี้) = 0.75   →   โอกาสฝนตกพรุ่งนี้ 75%
การวิเคราะห์ข้อมูลแบบเบย์เซียนด้วย Python

กฎของความน่าจะเป็น

กฎการบวก

  • ความน่าจะเป็นของ A หรือ B (เหตุการณ์อิสระ)
  • OR = การบวก
  • ความน่าจะเป็นที่จะได้ 2 หรือ 4 จากการทอยลูกเต๋า

P(2 or 4) = 1/6 + 1/6 = 0.33333... = 33.3%

กฎการคูณ

  • ความน่าจะเป็นของ A และ B (เหตุการณ์อิสระ)
  • AND = การคูณ
  • ความน่าจะเป็นที่จะได้ 2 แล้วได้ 4 จากการทอยลูกเต๋า

P(2 and 4) = 1/6 * 1/6 = 0.02777... = 2.8%

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

ความน่าจะเป็นแบบมีเงื่อนไข

  • ความน่าจะเป็นที่เหตุการณ์หนึ่งจะเกิดขึ้น โดยมีเงื่อนไขว่า อีกเหตุการณ์หนึ่งเกิดขึ้นแล้ว
  • P(A | B)

 

  • P(สีส้ม) = 2/3   →   แบบไม่มีเงื่อนไข
  • P(สีน้ำเงิน) = 1/3   →   แบบไม่มีเงื่อนไข

 

  • P(สีน้ำเงิน | สีส้ม) = 1/2   →   แบบมีเงื่อนไข
  • P(สีส้ม | สีน้ำเงิน) = 1   →   แบบมีเงื่อนไข

ภาพแผนผังแสดงลูกบอลสามลูกในกล่อง สองลูกสีส้ม หนึ่งลูกสีน้ำเงิน

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

ทฤษฎีของเบส์

  • วิธีคำนวณความน่าจะเป็นแบบมีเงื่อนไข เมื่อทราบความน่าจะเป็นอื่น ๆ บางส่วนแล้ว

 

$$P(A|B) = \frac{P(B|A) * P(A)}{P(B)}$$

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

ทฤษฎีของเบส์

  • วิธีคำนวณความน่าจะเป็นแบบมีเงื่อนไข เมื่อทราบความน่าจะเป็นอื่น ๆ บางส่วนแล้ว

 

$$P(\text{accident}|\text{slippery}) = \frac{P(\text{slippery}|\text{accident}) * P(\text{accident})}{P(\text{slippery})}$$

road_conditions.head()
     accident   slippery
0       False       True
1        True       True
2       False      False
3       False      False
4       False      False
การวิเคราะห์ข้อมูลแบบเบย์เซียนด้วย Python

ทฤษฎีของเบส์ในทางปฏิบัติ

 

$$P(\text{accident}|\text{slippery}) = \frac{P(\text{slippery}|\text{accident}) * P(\text{accident})}{P(\text{slippery})}$$

# Unconditional probability of an accident
p_accident = road_conditions["accident"].mean()  # 0.0625


# Unconditional probability of the road being slippery p_slippery = road_conditions["slippery"].mean() # 0.0892
# Probability of the road being slippery given there is an accident p_slippery_given_accident = road_conditions.loc[road_conditions["accident"]]["slippery"].mean() # 0.7142
# Probability of an accident given the road is slippery p_accident_given_slippery = p_slippery_given_accident * p_accident / p_slippery # 0.5
การวิเคราะห์ข้อมูลแบบเบย์เซียนด้วย Python

มาฝึกกันเถอะ!

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

Preparing Video For Download...