ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Naive Bayes Classification _ 나이브 베이즈 분류
    Statistics 2021. 1. 1. 00:00

     

    1. Bayes theorem

    2. Naive Bayes Classification

    3. Strengths and Weaknesses

     


     

    1. Bayes theorem

     

    베이즈 정리를 설명하기 위해서 필요한 조건부 확률에 대한 정의는 아래와 같다.

     

    $$ p(C_k|X)={p(C_k,X) \over p(X)} $$$$ p(X|C_k)={p(C_k,X) \over p(C_k)} $$

     

    위의 조건부 확률 식 사이에 분모만 다르다는 점을 이용하면,

     

    $$ p(C_k|X)={p(C_k,X) \over p(X)}={p(C_k,X) \over p(C_k)}\cdot{p(C_k) \over p(X)} $$ $$\therefore\,p(C_k|X)={p(X|C_k)}\cdot{p(C_k) \over p(X)} $$

     

    두 조건부 확률 식이 위와 같은 성질을 만족한다는 것을 알 수 있다.

    위와 같이 설명되는 베이즈 정리를 통해, target 변수 y에 대한 확률 값을 구하여 분류를 해보려고 한다.

     


     

    2. Naive Bayes Classification

     

    Naive : 순진한, 천진난만한, 순박한

     

    Naive Bayes Classification은 target 변수 y에 대해 설명변수 X가 독립적이면서 동등하게 기여한다는 가정 하에 계산된다는 특징을 가지고 있다. 변수 간의 상관관계를 따지지 않고 주어진 변수 만으로 Naive 하게 분류를 하겠다는 의미로 지어진 이름인 듯하다.

    Naive Bayes Classification은 주어진 독립된 설명변수 X에 대해 특정 결과값 $y=C_k$가 나올 확률을 구하여 가장 높은 확률을 갖는 y로 분류하는 과정이라고 볼 수 있다.

    만약, y가 0 또는 1이라면 계산을 통해 $p(y=0|X)=0.3$과 $p(y=1|X)=0.7$를 구함으로써 주어진 X에 해당하는 자료를 $y=1$ 로 분류시키는 것이 Naive Bayes Classification의 목표인 것이다.

    그렇다면 이 계산을 어떻게 할 수 있는가?

     

    $$ p(C_k|X)={p(C_k)p(X|C_k) \over p(X)} $$

     

    우선, 위 식의 우변을 살펴볼 필요가 있다.

    분모는 주어진 설명변수에 대한 확률인데, 우리는 특정 설명변수 값 하에서 결과값을 바꿔가면서 최상의 확률을 갖는 결과를 찾을 예정이다. 즉 분모는 앞으로의 계산에서 상수와도 같은 역할을 하기 때문에 분자만을 살펴보기로 한다. 

     

    $$ \begin{align} {p(C_k)p(X|C_k)}&=p(C_k)p(x_1,x_2,\ldots,x_n|C_k)\\&=p(C_k)p(x_1|C_k)p(x_2,x_3,\ldots,x_n|C_k)\\&=p(C_k)p(x_1|C_k)p(x_2|C_k,x_1)p(x_3,x_4,\ldots,x_n|C_k) \\& \,\,\,{\vdots}\\ &=p(C_k)p(x_1|C_k)p(x_2|C_k,x_1)\ldots p(x_n|C_k,x_1,\ldots,x_{n-1}) \end{align}$$

     

    설명변수가 n 개라는 가정 하에, 분자를 전개하면 위와 같다.

    여기서, 모든 설명변수가 독립이라는 점을 이용하면,

     

    $$p(C_k)p(x_1|C_k)p(x_2|C_k)\ldots p(x_n|C_k)$$

     

    분자를 위와 같이 정리할 수 있다.

    즉 Naive Bayes Classification를 정리하자면 아래와 같다.

     

    $$\hat{y}=\underset{k}{\operatorname{argmax}} {p(C_k)\prod_{i=1}^n p(x_i|C_k)}$$

     

    확률이 가장 높은 결과를 출력하는 분류 알고리즘이 비교적 간단한 원리로 완성된 것이다.

    이처럼 간단하고 1950년대부터 연구되어 올 정도로 오래된 방식임에도, 텍스트 분석 등의 꽤 복잡한 사례에서 좋은 결과를 내는 방식으로 꽤나 효과적인 방식임을 확인할 수 있다.  실제로, Zhang(2004)의 연구에서는, Naive Bayes Classification이 어떤 이유로 좋은 분류 결과를 얻을 수 있는지에 대한 이론적인 이유를 제시하고 있다.

    이에 대한 내용은 다음에 다뤄보도록 하자.

     


     

    3. Strengths and Weaknesses

     

    <장점>

    1. 간단한 사용방법
    2. 복잡한 상황에서도 효과적인 분류 결과 제공
    3. 빠른 작동

    <단점>

    1. 모든 설명변수가 독립적이고 동등하다는 가정에 의존
    2. 많은 연속형 변수로 이루어진 데이터셋을 다루는 것에는 무리가 있음

     

    두 번째 단점에 대해 첨언하자면, Naive Bayes Classification에 연속형 변수를 처리하기 위해서는 정규분포를 따른다고 가정(모수적 방식)하거나, Kernel Density Estimation(커널 밀도 추정)을 이용하여 직접 분포를 추정(비모수적 방식)하거나, 범주화하는 방식으로 접근할 수 있다고 한다. 다만 변수가 가진 정보의 100퍼센트 전부를 확률 값으로 변환하기에는 무리가 있기 때문에 단점으로 꼽히는 것이라 생각된다.

    위의 이슈와 관련하여, Bouckaert(2004)의 연구는 언급한 세 방식 중 어떤 방식이 연속형 변수 처리에 가장 효율적인가를 다루고 있다. 이에 대한 내용은 다음에 살펴보도록 하자.

     


     

    Reference

    "Naive Bayes Classification", wikipedia, en.wikipedia.org/wiki/Naive_Bayes_classifier

    Zhang, H. (2004). the optimality of naive Bayes. In FLAIRS2004 conference

    Zhang, H. (2005). Exploring conditions for the optimality of naive Bayes. International Journal of Pattern Recognition and Artificial Intelligence19(02), 183-198.

    Bouckaert, Remco. (2004). Naive Bayes Classifiers That Perform Well with Continuous Variables. 
    3339. 1089-1094. 10.1007/978-3-540-30549-1_106. 

     


     

    티스토리에는 처음 글을 써보는데, 뭘 써볼까 하다가 학교에서 하는 팀스터디 주제로 Naive Bayes Classification이 생각나, 이에 대해서 공부하는 김에 첫 글을 쓰게 되었다. 생각보다 여기에서 글을 쓰는 게 쉽지가 않다. html에서 익숙하지 않은 LaTex를 이용해서 수식을 입력하는 것도 일이다. 내용에 관해서도, Reference를 계속 타고 타고 들어가다 보니 나중에 살펴보겠다고 생각한 논문만 쌓이게 되었다. 다른 것도 하면서 틈틈이 공부하다 보니 재밌게 쓰긴 했는데 실수한 내용이 있을지도 모르겠다. 

     


     

    댓글

since 2021