[NLP] 나이브 베이즈 분류기 (Naive Bayes Classifier)
🎯 베이즈 정리 (Bayes' theorem)
- 베이즈 정리는 조건부 확률을 계산하는 방법 중 하나이다.
- 사건 A가 일어날 확률 : P(A), 사건 B가 일어날 확률 : P(B)
- P(A|B) : 사건 B가 일어나고 나서 사건 A가 일어날 확률, P(B|A) : 사건 A가 일어나고 나서 사건 B가 일어날 확률
-> 나이브 베이즈 분류기는 이러한 베이즈 정리를 이용해 텍스트를 분류
ex) 나이브 베이즈 분류기를 사용해 스팸 메일 필터를 만들기
P(정상 메일 | 입력 텍스트) = 입력 텍스트가 있을 때 정상 메일일 확률
P(스팸 메일 | 입력 텍스트) = 입력 텍스트가 있을 때 스팸 메일일 확률
이를 베이즈의 정리에 따라서 식을 표현하면 다음과 같다.
P(정상 메일 | 입력 텍스트) = (P(입력 텍스트 | 정상 메일) × P(정상 메일)) / P(입력 텍스트)
P(스팸 메일 | 입력 텍스트) = (P(입력 텍스트 | 스팸 메일) × P(스팸 메일)) / P(입력 텍스트)
이 때,
P(정상 메일 | 입력 텍스트) < P(스팸 메일 | 입력 텍스트) -> 스팸 메일
P(정상 메일 | 입력 텍스트) > P(스팸 메일 | 입력 텍스트) -> 정상 메일
- 우리는 스팸 메일 필터를 구현하기 위해 메일의 본문을 단어로 토큰화하여 이 단어들을 나이브 베이즈 분류기의 입력, 즉 입력 테스트로 사용한다.
예를 들어, 메일의 본문에 있는 단어가 3개라고 가정하자.
기본적으로 나이브 베이즈 분류기는 모든 단어가 독립적이라고 가정한다.
메일의 본문에 있는 단어 3개를 w1, w2, w3라고 표현한다면 결국 나이브 베이즈 분류기의 정상 메일일 확률과 스팸 메일일 확률을 구하는 식은 아래와 같다.
P(정상 메일 | 입력 텍스트) = P(w1 | 정상 메일) × P(w2 | 정상 메일) × P(w3 | 정상 메일) × P(정상 메일)
P(스팸 메일 | 입력 텍스트) = P(w1 | 스팸 메일) × P(w2 | 스팸 메일) × P(w3 | 스팸 메일) × P(스팸 메일)
위 식에서 볼 수 있듯,
- 나이브 베이즈 분류기에선 토큰화 이전의 단어의 순서는 중요하지 않다.
- BoW(Bag of Words)와 같이 단어의 순서를 무시하고 오직 빈도수만을 고려한다.
🎯 나이브 베이즈 분류기 (Naive Bayes Classifier)
나이브 베이즈는 스팸 메일 필터, 텍스트 분류, 감정 분석, 추천 시스템 등에 광범위하게 활용되는 분류 기법으로, 지도학습 방법 중 하나이다. 따라서 나이브 베이즈 분류를 하기 위해선 Feature과 Label(우리가 원하는 분류 결과)이 필요하다. 우리는 머신러닝을 통해 동물 사진이 주어졌을 때 이 동물이 사자인지 호랑이인지 고양이인지 분류할 수 있다. 이때, 여러가지 동물들을 분류하기 위해서 동물들의 특징들이 필요한데 예를 들면 동물의 자세, 표정, 생김새, 털의 색깔 등 다음과 같은 것들이 될 수 있다.
위 예시에서, 분류 결과에 해당하는 '사자, 호랑이, 고양이'는 Label이 되고,여러가지 특징들 '동물의 자세, 표정, 생김새, 털의 색깔 등'은 Feature이 된다고 할 수 있다.
🎯나이브 베이즈 분류란?
데이터의 특징을 가지고 각 클래스(레이블)에 속할 확률을 계산하는 조건부 확률 기반의 분류 방법
나이브(naïve)하다.
즉, 데이터의 특징이 모두 상호 독립적이라는 가정하에 확률 계산을 단순화한다는 의미에서 나온 말이다.
따리서 나이브 베이즈 분류를 통해 데이터 특징이 하나 이상일 때 나이브 베이즈 공식으로 해당 데이터가 어떤 레이블에 속할 확률이 가장 높은지를 알 수 있다.
- 나이브 베이즈 분류기에서는 두 가지의 가정이 존재한다.
- 문서 표현 = Bag of Words로 이루어져 있다.
- 따라서 문서는 등장 단어들의 위치가 아닌, 각 단어 식별자와 해당 단어의 등장 빈도로 이루어진 특징으로 표현된다.
- 주어진 클래스에 대한 문서 내 특징 fi의 조건부 확률 P(fi | c)는 서로 독립
🎯 나이브 베이즈 분류의 장단점
장점
- 간단하고, 빠르며, 정확한 모델
- computation cost가 작다.
- 큰 데이터셋에 적합
- 무관한 특징에 대해서 강건
- 중요도가 동등한 특징들이 존재하는 분야에서는 성능이 좋다.
- 문서 분류기의 기준 (baseline)
단점
- feature 간의 독립성이 있어야 한다.
Feature들이 서로 독립이라는 의미는 Feature간에 서로 상관관계가 없다는 뜻이다.
우리가 실생활에서 주로 사용하는 데이터들은 항상 독립성이 보장되지 않으므로 실생활에 적용하기는 어렵다.
🎯 나이브 베이즈 분류기의 학습
🎯 MLE (Maximum Likelihood Estimation)
Likelihood probability P(X|Θ) 가 최대가 되는 어떤 변수(Θ) 를 찾는 방법 중 하나로 A posterior probabilty(사후 확률)을 크게 하는 것이 Likelihood를 크게 하는 것이라고 생각하는 방식
위 식에서 argmax는 최댓값을 찾는 것이 아닌 최대값이 되게 하는 변수를 찾는 것이다.
여기서 X벡터는 각각의 element에 대한 확률 곱으로 P(X|Θ)를 만들 수 있다. 이 때, 확률 값이 곱해지면 곱해질수록 0에 가까워 지기 때문에 식에 log를 취해주게 된다.
- P(𝑐) : 학습 데이터가 각 클래스에 대응하는 확률
- P(𝑤i | 𝑐) : fi를 bag-of-words 표현의 문서 내 단어의 반복 등장 이라고 가정
🎯 분류 시스템에 대한 평가
🎯 정밀도 (precision), 재현율 (recall), 정확도(accuracy)
1. 정밀도 (precision)
: 모델이 True라고 분류한 것 중에서 실제 True인 것의 비율
2. 재현율 (recall)
: 실제 True인 것 중에서 모델이 True라고 예측한 것의 비율
3. 정확도 (accuracy)
🎯 F - Measure
Precision과 Recall의 트레이즈 오프를 잘 통합하여 정확성을 한번에 나타내는 지표
precision과 recall 의 조화평균
- α > 1 인 경우, recall 가중치
- α < 1 인 경우, precision 가중치
- α = 1 인 경우, F1 measure