Xác suất và Định lý Bayes

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

Michal Oleszak

Machine Learning Engineer

Lý thuyết xác suất

  • Phát biểu về mức độ bất định.
  • Một số từ 0 đến 1.
    • P = 0   →   bất khả
    • P = 1   →   chắc chắn
    • P = 0.5   →   50/50

 

  • P(mưa ngày mai) = 0.75   →   khả năng mưa 75%
Phân tích dữ liệu Bayesian với Python

Các quy tắc xác suất

Quy tắc cộng

  • Xác suất A hoặc B (độc lập)
  • HOẶC = cộng
  • Xác suất gieo được 2 hoặc 4 với một con xúc xắc

P(2 hoặc 4) = 1/6 + 1/6 = 0.33333... = 33.3%

Quy tắc nhân

  • Xác suất A B (độc lập)
  • VÀ = nhân
  • Xác suất gieo được 2 rồi 4 với một con xúc xắc

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

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

Xác suất có điều kiện

  • Xác suất một sự kiện xảy ra, biết rằng một sự kiện khác đã xảy ra.
  • P(A | B)

 

  • P(cam) = 2/3   →   vô điều kiện
  • P(xanh dương) = 1/3   →   vô điều kiện

 

  • P(xanh dương | cam) = 1/2   →   có điều kiện
  • P(cam | xanh dương) = 1   →   có điều kiện

Hình minh họa ba quả bóng trong một hộp. Hai quả màu cam, một quả màu xanh dương.

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

Định lý Bayes

  • Cách tính xác suất có điều kiện khi biết một số xác suất khác.

 

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

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

Định lý Bayes

  • Cách tính xác suất có điều kiện khi biết một số xác suất khác.

 

$$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
Phân tích dữ liệu Bayesian với Python

Định lý Bayes trong thực tế

 

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

# Xác suất vô điều kiện xảy ra tai nạn
p_accident = road_conditions["accident"].mean()  # 0.0625


# Xác suất vô điều kiện đường trơn p_slippery = road_conditions["slippery"].mean() # 0.0892
# Xác suất đường trơn khi có tai nạn p_slippery_given_accident = road_conditions.loc[road_conditions["accident"]]["slippery"].mean() # 0.7142
# Xác suất có tai nạn khi đường trơn p_accident_given_slippery = p_slippery_given_accident * p_accident / p_slippery # 0.5
Phân tích dữ liệu Bayesian với Python

Let's practice!

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

Preparing Video For Download...