분류문제를 생각해보자. 분류문제란 feature vector $\mathbf{x}=(x_1,x_2,…,x_n)$로 부터 이 데이터가 어떤 클래스 $y$를 갖는지 분류하는 문제이다. 분류기 $h:X \to y$를 만드는 문제로 생각할 수 있다. $y$는 클래스 변수이므로 $y$가 가질 수 있는 값은 $y_1,…,y_k$로써 유한하고 $\mathbf{x}$는 어떤 값이건 가능하다.
prior가 있는 경우의 분류문제
만약에 $y$에 대한 prior가 있다면 분류기 $h$를 만드는 문제는 MAP 문제 와 같아진다.
MAP를 활용한 분류기는 다음과 같이 쓸 수 있겠다.
$$h(\mathbf{x}) = argmax_{y_i}p(y_i|\mathbf{x})$$
분류기를 구하기 위해 베이즈 정리를 사용하면 위의 식은 아래식과 같다.
$$h(\mathbf{x}) = argmax_{y_i}p(\mathbf{x} | y_i) = argmax_{y_i}p(x_1,…,x_n | y_i)$$
분류기를 구하기 위해서는 $p(x_1,…,x_n|y)$를 알아야 된다. 그런데! $x_i$가 가질 수 있는 값이 0과 1뿐이라고 가정하자. 그러면 $p(x_1,…,x_n|y)$는 총 $2^n$개 값을 갖는다. y의 종류가 k개이므로 총 $2^n k $개의 값을 알아야 한다. 이 갯수를 줄이는 방법으로써 탄생한것이 Naive Bayes classfier 이다.
Naive Bayes classifier 의 가정
Naive Bayes classifier사용하기 위해 $y$가 주어질 때 $\mathbf{x}=(x_1,…,x_n)$에서 $x_1,…,x_n$는 독립이라는 가정을한다. 바꿔 말하면 $y$가 주어질 때, $x_1,..,x_n$가 조건부 독립이라는 의미이다.
$$p(x_1,…,x_n|y) = p(x_1|y) p(x_2|y) \cdot \cdot \cdot p(x_n|y)$$
위와 같이 조건부 독립을 가정했을 때 분류기를 Naive Bayes classifier라 부른다.
Naive Bayes classifier의 이점
조건부 독립을 가정하여 Naive Bayes classifier를 만들었을 때 이점은 무엇일까?
$x_i$가 가질 수 잇는 값을 0,1이라고 가정하자. 조건부독립을 가정할 경우 $p(x_1,…,x_n|y_i)$에 대해서는 총 $2^n$개의 값을 생각해주어야 한다. Naive Bayes classifier의 경우에는 $p(x_1,…,x_n|y_i) = p(x_1|y_i) p(x_2|y_i) \cdot \cdot \cdot p(x_n|y_i)$이므로 $\mathbf{x}$의 분포는 총 2n개의 값만 알면된다. $2^n$개에서 $2n$개로 쭐였으니~ 계산상의 이점과 메모리 활용에 이점이 있다.