머신러닝&딥러닝/Algorithm

나이브 베이즈(Naive Bayes)

e냥냥 2022. 9. 15. 14:45
728x90

 

Fastcampus 추천시스템 구현하는 방법을 공부하면서 컨텐츠기반 추천알고리즘의 대표적인

나이브 베이즈 추천알고리즘에 대해 정리해보도록 하겠습니다. 


1. 시작하기 전에

1) 확률(Probability)

  • 사건(Event) A가 발생할 가능성
  • $P(A) = \frac{사건A의 경우의 수}{전체경우의수}$     

   

2) 조건부 확률(Cpnditional Probability)

 ① 사건B가 발생했을 때, 사건A가 발생할 확률

         $P(A|B) = \frac{P(A\cap B)}{P(B)}$

     

 ② 사건A가 발생했을 때, 사건B가 발생할 확률

         $P(B|A) = \frac{P(A\cap B)}{P(A)}$

 

 ③ $P(A\cap B) = P(A|B)P(B) = P(B|A)P(A)$

         사건A와 사건B가 독립이면, $P(A\cap B) = P(A)P(B)$

 

3) 베이즈 정리(Bayes' Theorem)

 ① 공식

  • $P(A|B) = \frac{P(B|A)P(A)}{P(B)}$
  • $P(A) :  사전확률(prior), P(A|B) : 사후확률(posterior)$

     

 ② 사전확률

  • 현재 정보를 바탕으로 정한 확률(예 : 동전 앞면 나올 확률 = 1/2, 주사위를 던졌을때 1이 나올 확률 = 1/6 )

     

 ③ 사후확률         

  • 사건B가 사건A로부터 발생했다는 가정하에 사건A의 확률 업데이트
  • 베이즈 정리를 통해 사후확률 계산

 

2. 나이브베이즈 분류기(Naive Bayes Classifier)

1) 베이즈 정리에 의한 통계기반 분류 알고리즘(지도학습) 

 

2) 특징(추천시스템 관련)

  • 아이템의 특징(feature, attribute 등)끼리 서로 독립
  • 영화 장르와 영화 감독이 서로 연관이 없어야함
  • 데이터 셋이 커도 모델 예측에 관계 없음
  • Continuous Variable보다 Discrete Variable에 더 잘 맞음
  • 간단하고, 계산량이 많지 않은 모델
  • 데이터의 차원이 높아질수록 모든 class에 대해 확률이 0으로 수렴 가능 → Laplace Smooting 활용

 

3) 나이브베이즈 학습 예제

 

첫번째 그림을 보면 Outlook, Temp, Humidity, Windy 4개의 feature로 Play의 결정 여부를 볼 수 있습니다. 

각 feature에 따라 Play의 count를 계산할 수 있고, 아래와 같은 방법으로 확률을 정리하는 일련의 과정이

나이브베이즈 학습 과정이라고 생각하시면 될 것 같습니다. 

 

 

새로운 아이템 $x' = (Rainy, Cool, High, True)$ 는 Play Yes 일까? No일까?

$P(Class_{Play=Yes}|x')$
$ = P(Rainy|Class_{yes}) × P(Cool|Class_{yes}) × P(High|Class_{yes}) × P(True|Class_{yes}) × P(Class_{Play=yes})$
$ = \frac{3}{9} × \frac{3}{9} × \frac{3}{9} × \frac{3}{9} × \frac{9}{14} \cong 0.00794$

 

$P(Class_{Play=No}|x')$

$ = P(Rainy|Class_{no}) × P(Cool|Class_{no}) × P(High|Class_{no}) × P(True|Class_{no}) × P(Class_P{Play=no})$

$ = \frac{2}{5} × \frac{1}{5} × \frac{4}{5} × \frac{3}{5} × \frac{5}{14} \cong 0.01371$

 

 

새로운 아이템 $x' = (Rainy, Cool, High, True)$ 는 $P(Class_{Play=No}|x')$ 일 때 0.01371로

확률이 더 높으므로 Play = No로 분류하게 됩니다.

 

 

 

 

 

728x90
loading