• 확률(probability) : 유한한 집합에서의 비율
  • 조건부 확률: 조건에 따른 확률
    – 예: 한 응답자가 은행원일 때, 여성일 확률 P(여성|은행원)
    – 모든 은행원을 골라낸다. 이 중 여성의 비율을 구한다.

    • [중요] 조건부 확률은 교환 가능하지 않다.
    • 한 응답자가 은행원일 때 여성일 확률과 한 응답자가 여성일 때 은행원일 확률은 같지 않음.
    • P(여성|은행원) != P(은행원|여성)

베이즈 정리

  • 베이즈 정리 P(A|B) = P(A)*P(B|A) / P(B)
    • 사건 B가 발생함으로써(사건 B가 진실이라는 것을 알게 됨으로써, 즉 사건 B의 확률 P(B)=1이라는 것을 알게 됨으로써) 사건 A의 확률이 어떻게 변화하는지를 표현한 정리. 베이즈 정리는 새로운 정보가 기존의 추론에 어떻게 영향을 미치는지를 나타낸다. (출처: 데이터 사이언스 스쿨)

    • 문제를 해결하는 데에 완벽한 데이터를 가지고 있다면 베이즈 정리는 필요 없음. 하지만 완전한 데이터를 항상 가질 수 없으므로, 베이지 정리가 유용하게 사용될 수 있음. (특히 데이터 수가 적을 때 유용함.)

  • 통시적 베이즈: 데이터 일부 D가 주어졌을 때, 가설 H의 확률을 갱신하는 방법
    • ‘통시적’ : 시간에 따라 변한다

    • P(H|D) = P(H)*P(D|H) / P(D)

      • P(H)는 데이터를 확인하기 전에 구한 가설의 확률로, 사전확률이라고 한다.
      • P(H|D)는 데이터를 확인한 후의 가설 확률로, 사후확률이라고 한다.
      • P(D|H)는 가설 하에서 해당 데이터가 나올 확률로, 가능도(우도)라고 한다.
      • P(D)는 어떤 가설에서든 해당 데이터가 나올 확률로, 데이터의 전체확률이라고 한다.
  • 베이즈 갱신(Bayesian Update): 데이터와 사전확률을 사용해서 사후확률을 구하는 과정

예제: 쿠키 문제

  • 첫 번째 그릇(그릇 A)에는 바닐라 쿠키 30개와 초콜릿 쿠키 10개가 들어있다.
  • 두 번째 그릇(그릇 B)에는 바닐라 쿠키와 초콜릿 쿠키가 20개씩 들어있다.

  • 전체 쿠키 중에서 쿠키를 하나 집었을 때 그 쿠키가 바닐라 쿠키였다면, 이 바닐라 쿠키(V)가 그릇 A(Bowl_A)에서 나왔을 확률은 얼마인가?

– 그릇 A라는 조건 하에서 바닐라 쿠키를 꺼낼 조건부 확률: P(V|Bowl_A)

– 그릇 B라는 조건 하에서 바닐라 쿠키를 꺼낼 조건부 확률: P(V|Bowl_B)

P(Bowl_A|V) = P(Bowl_A)*P(V|Bowl_A) / P(V)

P(Bowl_A): 어떤 쿠키를 골랐던 상관없이 그릇 A를 골랐을 확률. 그릇을 임의로 선택했으므로 1/2이다.

P(V|Bowl_A): 그릇 A에서 바닐라 쿠키를 고를 확률로, 3/4

P(V) : 각 그릇에서 바닐라 쿠키를 고를 확률

P(Bowl_A|V) = (1/2)*(3/4) / (5/8) = 3/5

  • 쿠키 문제 베이즈 갱신: Python 코드 구현
import pandas as pd 
table = pd.DataFrame(index=['Bowl_A', 'Bowl_B'])

# 사전확률
table['prior'] = 1/2, 1/2

# 가능도(우도) - 바닐라 쿠키가 A와 B 그릇에서 각각 나올 확률 
table['likelihood'] = 3/4, 1/2

# 표준화되지 않은 사후확률: 사전확률과 가능도의 곱 
table['unnorm'] = table['prior'] * table['likelihood']

# 전체확률 
prob_data = table['unnorm'].sum()

# 사후확률 (표준화, 전체 합이 1) 
table['posterior'] = table['unnorm'] / prob_data 

# 전체 표 출력 
print(table) 
  • 결과 표 확인
	prior	likelihood	unnorm	posterior
A	0.5	    0.75        0.375	0.6
B	0.5	    0.50        0.250	0.4
  • 결과 표를 보면, Python 코드를 통해 확인한 전체 쿠키 중에서 쿠키를 하나 집었을 때 그 쿠키가 바닐라 쿠키였다면, 이 바닐라 쿠키(V)가 그릇 A(Bowl_A)에서 나왔을 확률은 0.6으로,

  • 위에서 공식으로 구한 값과 동일한 것을 알 수 있다.


출처

  • 앨런 B. 다우니 (2022) <파이썬을 활용한 베이지안 통계(2판)>. 한빛미디어. (원서명: Think Bayes)
  • 데이터 사이언스 스쿨