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로 분류하게 됩니다.
'머신러닝&딥러닝 > Algorithm' 카테고리의 다른 글
TF-IDF(Term Frequency - Inverse Document Frequency) (1) | 2022.09.21 |
---|