Loading [MathJax]/jax/output/CommonHTML/jax.js

AI모델/AI기술방법론

나이브 베이즈(Naive Bayes)

짠테크맘 2022. 9. 15. 14:45
728x90

 

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

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


1. 시작하기 전에

1) 확률(Probability)

  • 사건(Event) A가 발생할 가능성
  • P(A)=A     

   

2) 조건부 확률(Cpnditional Probability)

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

         P(A|B)=P(AB)P(B)

     

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

         P(B|A)=P(AB)P(A)

 

 ③ P(AB)=P(A|B)P(B)=P(B|A)P(A)

         사건A와 사건B가 독립이면, P(AB)=P(A)P(B)

 

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

 ① 공식

  • P(A|B)=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(ClassPlay=Yes|x)
=P(Rainy|Classyes)×P(Cool|Classyes)×P(High|Classyes)×P(True|Classyes)×P(ClassPlay=yes)
=39×39×39×39×9140.00794

 

P(ClassPlay=No|x)

=P(Rainy|Classno)×P(Cool|Classno)×P(High|Classno)×P(True|Classno)×P(ClassPPlay=no)

=25×15×45×35×5140.01371

 

 

새로운 아이템 x=(Rainy,Cool,High,True)P(ClassPlay=No|x) 일 때 0.01371로

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

 

 

 

 

 

728x90