lastnamesong
[통계 이론] 베이즈 정리 본문
스팸 필터는 어떻게 작동할까? 이메일을 받을 때마다 메일 서비스는 해당 메일이 스팸인지 아닌지를 판단해야 한다. 이때 단순히 특정 단어가 포함되었는지만 보는 것이 아니라, 머신러닝 모델을 활용해 확률적으로 판단한다. 그리고 이 과정에서 핵심적으로 사용되는 개념이 바로 베이즈 정리이다. 베이즈 정리를 활용하면 새로운 정보가 추가될 때 기존 확률을 조정하여 보다 정확한 판단을 내릴 수 있다.
이번 글에서는 베이즈 정리에 대해 정리하기에 앞서 조건부 확률에 대해 확실하게 이해하고, 베이즈 정리와 이를 이용한 응용, 그리고 시험 등에서 나올 수 있을 법한 문제를 정리한다.
조건부 확률
베이즈 정리를 이해하려면 먼저 조건부 확률을 알아야 한다. 조건부 확률은 어떤 사건 A가 이미 발생했을 때, 또 다른 사건 B가 발생할 확률을 의미한다. 수식으로 표현하면 다음과 같다.
$$ P(B | A) = \dfrac{P(A \cap B)}{P(A)} $$
즉, A가 주어진 상황에서 B가 일어날 확률은 A와 B가 동시에 발생할 확률을 A가 발생할 확률로 나눈 값이다. 이 개념을 활용하면 특정한 조건이 주어졌을 때 결과가 달라질 수 있음을 이해할 수 있다. 예를 들어, 비가 올 확률이 30%라고 해도, 구름이 잔뜩 낀 상황에서는 비가 올 확률이 더 높아질 것이다. 이런 식으로 조건이 추가되면 확률이 변하는 것이 조건부 확률의 핵심 개념이다.
베이즈 정리
베이즈 정리는 조건부 확률을 활용하여 기존의 확률을 새로운 증거에 따라 갱신하는 방식이다. 수식으로 나타내면 다음과 같다.
$$ P(A | B) = \dfrac{P(B | A) P(A)}{P(B)} $$
대부분의 사회 통계는 전수조사가 불가능하기에 기존 사건들의 확률 역시 알 수 없는 것이어서 한 때 베이즈 정리는 관심 밖에 있었으나, 최근 빅데이터를 통해 기존 사건들의 확률을 대략적으로 구할 수 있게 됨으로써, 사회적 통계나 주식에서의 빅데이터를 이용한 베이즈 정리 활용이 필수적인 것으로 되고 있다.
베이즈 정리를 스팸 필터 예제에 적용해 보자. 어떤 이메일이 "무료"라는 단어를 포함하고 있을 때, 그것이 스팸일 확률을 알고 싶다고 하자. 이를 계산하려면 다음 값들이 필요하다.
- \( P(\text{스팸}) \): 전체 이메일 중 스팸 메일의 비율
- \( P(\text{무료} | \text{스팸}) \): 스팸 메일 중 "무료"라는 단어를 포함할 확률
- \( P(\text{무료}) \): 전체 이메일 중 "무료"라는 단어가 포함될 확률
이제 베이즈 정리를 적용하면 해당 이메일이 스팸일 확률을 계산할 수 있다.
예를 들어, 전체 이메일 중 40%가 스팸이라고 하자. 또한, 스팸 메일의 70%가 "무료"라는 단어를 포함하고 있으며, 전체 이메일 중 20%가 "무료"라는 단어를 포함하고 있다고 가정한다. 그러면 특정 이메일이 "무료"라는 단어를 포함하고 있을 때, 그것이 스팸일 확률은 다음과 같이 계산할 수 있다.
$$ P(\text{스팸} | \text{무료}) = \dfrac{P(\text{무료} | \text{스팸})}{P(\text{무료})} = \dfrac{0.7 \times 0.4}{0.2} = 0.7 \; (\text{i.e., } 70 \%)$$
즉, "무료"라는 단어가 포함된 이메일을 받았을 때, 그것이 스팸일 확률은 70%라는 결론이 나온다. 실제로 스팸 필터는 이런 개별 단어만이 아니라 다양한 요소를 함께 고려하여 확률을 계산한다. 제목, 발신자, 링크 포함 여부 등 여러 특징을 분석한 뒤 베이즈 정리를 적용하여 최종 확률을 결정하는 것이다.
예제: 세 쇼핑몰의 배송 지연 확률
ChatGPT에게 예제를 하나 만들어달라고 했는데, 적절한 예제를 제시해준 것 같아서 정리해본다.
동일한 제품을 세 개의 쇼핑몰 A, B, C에서 구매하는 상황이다. 각 쇼핑몰의 주문 비율 (전체 주문에서 차지하는 비중)과 해당 쇼핑몰에서 주문한 상품이 배송 지연될 확률이 다음과 같다고 하자.
- 쇼핑몰 A: 50% (\(P(A) = 0.5\))
- 쇼핑몰 B: 30% (\(P(B) = 0.3\))
- 쇼핑몰 C: 20% (\(P(C) = 0.2\))
또한, 각 쇼핑몰의 지연 확률은 다음과 같다.
- A에서 구매했는데 지연될 확률: 20% (\(P(H | A) = 0.2\))
- B에서 구매했는데 지연될 확률: 10% (\(P(H | B) = 0.1\))
- C에서 구매했는데 지연될 확률: 5% (\(P(H | C) = 0.05\))
쇼핑몰에서 구매한 상품이 지연되었을 때 쇼핑몰 B에서 주문했을 확률은 전확률 공식과 베이즈 정리를 이용하여 계산할 수 있다.
먼저 랜덤하게 주문한 상품이 지연될 확률인 \( P(H) \)를 알아야 한다.
$$ \begin{align} P(H) & = P(H|A)P(A) + P(H|B)P(B) + P(H|C)P(C) \\[7pt] & = (0.2 \times 0.5) + (0.1 \times 0.3) + (0.05 \times 0.2) = 0.1 + 0.03 + 0.01 \\[7pt] & = 0.14 \end{align}$$
다음으로 베이즈 정리를 사용하여 조건부 확률을 계산할 수 있다.
$$ P(B|H) = \dfrac{P(H|B) P(B)}{P(H)} = \dfrac{0.1 \times 0.3}{0.14} = \dfrac{0.03}{0.14} \approx 0.214$$
베이즈 정리를 사용하지 않는다면 \( P(B \cap H) \)를 구하는 등의 추가적인 계산을 해야해서 번거로웠을 것이다. 또한 데이터 분석의 측면에서 배송 지연이 특정 쇼핑몰에서 온 것인지 분석하는 과정이 훨씬 수월해진다. 이 원리는 머신러닝에서 특정 클래스에 속할 확률을 예측하는 데에도 동일하게 활용된다.
베이즈 정리를 기반으로 예측 모델을 만들거나, 우리가 흔히 알고리즘이라고 하는 추천 시스템을 만들 수도 있는 등 머신러닝 분야에서 다양한 응용이 가능하다.
'Data Analysis' 카테고리의 다른 글
[통계 이론] 연속 확률분포 (정규분포, 표준정규분포) (0) | 2025.03.01 |
---|