나이브 베이즈 분류 (Naive Bayes Classification)

Posted by JudeLee on November 19, 2015

나이브 베이즈 분류 (Naive Bayes Classification)

본 문서는 스터디의 목적으로 Machine Learning in Action (영문판) 를 보면서 작성한 글 입니다.
지적은 언제나 환영입니다 :)

나이브 베이즈 분류(Naive Bayes Classification)는 머신러닝에서 Supervised Learning 의 일종이다. 이 분류는 텍스트 분류(스팸)에 사용 될 수 있는 분류 방법중 하나이며 Bayes’ rule (베이즈 룰) 의 적용을 기본으로 한다.

Bayes’ rule 의 적용

주어진 input 으로 w 라는 벡터가 주어지고 어떠한 class 를 c 라고 표현할 때 Bayes’ rule 를 적용하여 다음과 같이 나타낼 수 있다.

만약 class 가 여러 개일 경우 특정한 input 이 들어왔을 때 그 input 이 어떤 class 에 속하는 지 알고 싶을경우에는 위의 확률을 각각 계산하여 가장 높은 확률값을 가지는 class 에 input 속한다고 결정한다. 여기서 우리는 모든 w 를 각각의 개인적인 feature 라고 생각하고 이 각각의 feature 들은 서로 독립이므로 아래와 같은 식이 성립한다.

확률이 0 이 될 경우

위에서 설명한 바와 같이 계산할 경우 만약 전체 경우의 수가 적다면 아래와 같이 해당하는 특정한 w 값이 존재하지 않아 확률이 0 이 되어 전체 계산값이 0이 될 수 있다.

이와 같은 상황을 방지 하기위해서 존재하지 않는 w 값에 +1 을 해주는 Laplace smoothing 라는 방법을 사용할 수도 있지만 Laplace smoothing 방법의 경우에는 계산 결과에서 rounds off 가 0으로 되어 Underflow 를 일으킬 수 있기 때문에 전체식에 Log 를 씌어주어 해결할 수 있다. Log를 씌어도 되는 이유는 어떠한 식 F(x) 와 ln(F(x)) 가 있다고 할 때 아래와 같은 그래프를 비교해보면 두 함수의 증,감이 되는 구간과 시점이 똑같기 때문이다.