확률과 베이즈 정리

Python으로 배우는 Bayesian 데이터 분석

Michal Oleszak

Machine Learning Engineer

확률 이론

  • 불확실성에 대한 진술입니다.
  • 0과 1 사이의 수입니다.
    • P = 0   →   불가능
    • P = 1   →   확실
    • P = 0.5   →   50/50 가능성

 

  • P(내일 비) = 0.75   →   내일 비 확률 75%
Python으로 배우는 Bayesian 데이터 분석

확률 규칙

합의 법칙

  • A 또는 B의 확률(독립 사건)
  • OR = 덧셈
  • 주사위로 2 또는 4가 나올 확률

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

곱의 법칙

  • A 그리고 B의 확률(독립 사건)
  • AND = 곱셈
  • 주사위로 2가 나오고 이어서 4가 나올 확률

P(2 그리고 4) = 1/6 * 1/6 = 0.02777... = 2.8%

Python으로 배우는 Bayesian 데이터 분석

조건부확률

  • 어떤 사건이 일어났다는 조건에서 다른 사건이 일어날 확률입니다.
  • P(A | B)

 

  • P(주황) = 2/3   →   무조건부
  • P(파랑) = 1/3   →   무조건부

 

  • P(파랑 | 주황) = 1/2   →   조건부
  • P(주황 | 파랑) = 1   →   조건부

상자 안의 공 세 개 도식 그림. 두 개는 주황, 하나는 파랑.

Python으로 배우는 Bayesian 데이터 분석

베이즈 정리

  • 다른 확률을 알 때 조건부확률을 계산하는 방법입니다.

 

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

Python으로 배우는 Bayesian 데이터 분석

베이즈 정리

  • 다른 확률을 알 때 조건부확률을 계산하는 방법입니다.

 

$$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으로 배우는 Bayesian 데이터 분석

베이즈 정리 실습

 

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

# 사고의 무조건부 확률
p_accident = road_conditions["accident"].mean()  # 0.0625


# 도로가 미끄러운 것의 무조건부 확률 p_slippery = road_conditions["slippery"].mean() # 0.0892
# 사고가 났을 때 도로가 미끄러울 확률 p_slippery_given_accident = road_conditions.loc[road_conditions["accident"]]["slippery"].mean() # 0.7142
# 도로가 미끄러울 때 사고가 날 확률 p_accident_given_slippery = p_slippery_given_accident * p_accident / p_slippery # 0.5
Python으로 배우는 Bayesian 데이터 분석

연습해 봅시다!

Python으로 배우는 Bayesian 데이터 분석

Preparing Video For Download...