여지껏 P(E|D) = P(E) * P(D|E), 즉 데이터가 하나만 존재하는 경우만을 봐왔다. 이제 정보가 여러개 주어진 상황을 살펴보자. 사실 별 내용이 없어서 필기 대충했다. 동전던지기와 주사위던지기는 서로 독립적인 시행이니 이들을 결합한 사건은 결국 두 사건의 확률의 곱으로 구성된다는 내용이다.
Naive Bayesian Classifier을 활용한 대표적 사례인 스팸필터를 살펴보자. 우리는 스팸인지 아닌지를 확인하고 싶다.
그런데 이를 사전적으로 추정할 방법은 없으니 1/2로 prior prob을 설정한다. 그리고 여지껏 취합한 정보에 의하면 스팸메일에는 60%의 확률로 url이 존재하며, 스팸이 아닌경우 20%의 확률로 존재한다. 기호로 표현하자면 P(url|spam)=60%인 것이다. 이를 conditional probability * prior prob으로 posterior을 구해주면 아래의 직사각형 도형과 같다.
현재 우리에게 주어진 정보에 의하면 우리가 방금 받은 메일에 url이 존재한다. 그러면 url이 존재하는 가능세계만 집중할 때 해당 메일이 스팸메일일 확률은 75%로 증가한다.
그러나 75%의 확률은 다소 낮은 것 같아서 새로운 정보와 기준을 추가하려고 한다. 우리의 목표는 95%의 확률이다.
이번엔 단어 'meeting'의 포함 여부를 통해 스팸메일을 분류하려고 한다. 스팸메일에는 40%의 확률로 meeting이란 단어가 있으며, 아닌 경우엔 5%의 확률로 존재한다. 이를 P(spam) * P(url|spam) * P(meeting|spam)으로 곱하여 posterior를 구하면 위와 같다.
여기서 하나 알아둬야하는 것이 P(spam) * P(url|spam) = P(spam|url) = 75%인데, 위 경우에서 url을 통해 한번 걸러낸 상황이니 사실상 prior prob이 75%라고 봐도된다. 아래 도형을 보면 이해가 쉬울거다.
url로만 판단했을 때 url이 존재하는 메일이 스팸일 확률은 기존 50%에서 75%로 상승했다. 이미 우리 메일에는 url이 있으니 이를 prior로 update해주겠다. update된 prior prob은 75%이고, 이를 기반으로 다시 새로운 data인 meeting의 여부를 분류에 사용한다. 이번엔 P(spam|meeting)이 96%가 되었으니 해당 메일은 매우 높은 확률로 스팸메일이다.
이렇게 순차적으로 사후확률을 추정할 수 있단 사실이 매우 중요하다. 예를 들어 지금처럼 분류기준이 2개가 아니라 500개였다고 가정해보자. 그렇다면 500개를 동시에 연산하면 엄청난 자원낭비가 발생했을 거다. 그러나 500개의 요소를 순차적으로 해도 서로가 독립적이기 때문에 연산결과에 하등의 지장이 없다. 연쇄적 연산이 가능해 오히려 자원이 절약되는 이점도 있다.
항아리에서 공 꺼내는 예시를 다시 살펴보면 i.i.d로 공을 추출해낼 때 가장 최근에 뽑힌 공의 색깔에 따라서 해당 항아리가 B일 확률이 움직이는 것을 확인할 수 있다. 그러나 세번의 추출만 했을 때보다 스무번의 추출을 했을 때 추측의 신뢰도는 분명 높아진다.
'수학 > 통계학' 카테고리의 다른 글
[확률론] (2) Story proofs, Axioms of Probability (0) | 2022.01.31 |
---|---|
[확률론] (1) Probability and Counting (0) | 2022.01.31 |
[베이즈통계] (2) 방법론의 리스크 vs 선택의 리스크 (0) | 2022.01.26 |
[베이즈통계] (1) 정보의 획득이 확률을 바꾼다 (0) | 2022.01.26 |
[경제수리통계학] 8. Large Sample Theory (0) | 2021.12.21 |