본문 바로가기

Robotics/Algorithms

나이브 베이즈(Naive Bayes)


(image from Google.)

어떤 뚜렷한 원인은 알 수 없으나, 기존에 모아놨던 데이터에서 어떠한 인과관계를 분석하여 결과를 예측할 때 확률이라는 것은 좋은 도구로 사용될 수 있다. 예를들어, 병을 진단할때, 정확하지는 않지만 흔히 기침을 하거나 몸에서 열이나고 콧물이 나거나 하는 등의 증상이 보이면 우리는 감기라는 것을 예측할 수 있다. 즉, 이런 {f1, f2, f3...} 라고 하는 정보들로 감기라는 {label}을 예측할 수 있다. 다른 예를 들어볼까.. 흔히 쉽게 설명하기 위해 문서의 분류문제(document classification)나 스팸 메일의 분류문제(spam mail classification)를 많이 예로 설명한다. 스팸 메일의 분류문제를 예로들어보면, 스팸으로 분류할 것이냐 하지 않을것이냐의 문제를 다루는 것인데, 메일의 내용에서 단순히 '대출', '비아그라', '무담보' 등의 단어들이 출현한다고 하여 무조건 스팸메일로 분류를 하지는 않는다. 왜냐하면 극단적인 예를 들면 받는 사람 이름이 '김 대출'일 수도 있고, 실제로 대출을 받고 싶은데 아는 사람이 대출관련 정보를 알려준 경우도 있을테니 말이다... 따라서, '대출'이라는 단어말고 스팸메일로 분류할 만한 단어들이 더 나왔을때 우리는 확률적으로 스팸메일로 분류될 확률을 높임으로써 스팸메일을 좀 더 정확하게 분류할 수 있을것이다. 문서 분류도 마찬가지다. 어떤 문서가 정치,경제와 관련된 문서인지, 과학기술에 관련된 문서인지를 분류할때 이런 확률모델이 좋은 접근방법중에 하나가 될 것이다. 그런 확률 모델중에 하나가 베이즈 정리(Baye's Theorem)이다. 이번 글에서는 간단한 나이브 베이즈(Naive Bayes)에 대해서 차근차근 정리해 볼 것이다.

'Naive'라는 단어를 네이버 영어 사전으로 검색하면 다음과 같은 의미설명이 이루어져 있다.

1. (못마땅함) (경험・지식 부족 등으로) 순진해 빠진, (모자랄 정도로) 순진한

' 나이브 베이즈'를 어떻게 해석해야 할까? 순진해 빠진 베이즈??ㅋ Tomas Bayes(http://en.wikipedia.org/wiki/Thomas_Bayes)가 화내겠군..ㅋ 일단 뉘앙스는 '단순함'일 것같다. 나이브로 불리는 이유는 결합하는 확률이 서로 독립(independence)이라는 가정이 있기때문이다. 사실은 미약하게나마 개별 사건에 대한 확률이 다른 확률에 영향을 미칠수 있지만, 무시하고 그냥 단순하게 두 사건이 서로 독립이라고 가정하고(즉, 아무런 영향을 주지 않는다고 가정하고) 두 사건의 결합 확률을 구했을때 그냥 두 확률값의 곱으로만 표현해서 결합 확률(joint probability)를 구하는 것이다. 좀더 이해를 위해 예를 들어보자. '대출'이라는 단어가 spam 문서에 나타날 확률이 30%이고, '비아그라'라는 단어가 spam 문서에 나타날 확률이 70%라고 했을때, spam문서에 두 단어가 동시에 나타날 확률은, 두 사건이 서로 독립이라는 가정하에 곱으로 표현할 수 있기때문에 0.3 x 0.7이 되어 0.21이 된다. 즉 21%의 확률로 spam이라는 문서에 '대출'이라는 단어와 '비아그라'라는 단어가 동시에 나타난다는 이야기이다.

wikipedia에서 나이브 베이즈 classifier에 대한 설명을 보면 아래와 같다. (http://en.wikipedia.org/wiki/Naive_Bayes_classifier)
 
A naive Bayes classifier is a simple probabilistic classifier based on applying Bayes' theorem with strong (naive) independence assumptions. A more descriptive term for the underlying probability model would be "independent feature model".

나이브 베이즈(Naive Bayes) 분류기는 강한(strong) 독립(independence)을 가정한 베이즈 정리(Bayes' theorem)를 기반으로 하는 단순한 확률 분류기이다. 이 말은 각 사건 들이 서로 영향을 주지 않는 독립적인 관계(Independence) 라고 가정한다면 베이즈 정리에 의해 아래식과 같이 표현될 수 있다. 단순하게 생각해보자. 위에서 설명한 예를 빗대어 보면, F는 '대출','비아그라'.. 등이 될테고, C는 Spam 문서가 된다. 아래의 좌측항의 의미는 즉, '대출','비아그라'라는 단어가 주어졌을때 이것이 Spam일 확률을 구하는 식이 우측항이 라는 의미이다.
 


간단하지 않은가?
좀 더 이해를 돕기 위해서 자세하게 예나 설명이 되어 있는 사이트를 링크한다.

1. Stanford University A.I. 동영상 강의  : https://www.ai-class.com/home/