나이브 베이즈 분류기는 인공 신경망 알고리즘에는 속하지 않지만, 머신 러닝의 주요 알고리즘으로 분류에 있어 준수한 성능을 보여주는 것으로 알려져 있습니다.
나이브 베이즈 분류기는 베이즈 정리를 사용하여 주어진 데이터를 특정 클래스에 속할 확률을 계산하고,
가장 높은 확률을 가진 클래스를 선택하는 방식으로 동작
이때, 모든 특성(feature)이 서로 독립적이라고 가정
- 각 클래스의 사전 확률 P(C)를 계산합니다.
- 각 특성별로 조건부 확률 P(x_i|C)를 계산합니다.
- 테스트 데이터의 모든 특성에 대해 조건부 확률을 곱하여 P(x|C)를 구합니다.
- P(x|C)와 P(C)를 곱하여 사후 확률 P(C|x)를 구합니다.
- 가장 높은 확률을 가진 클래스를 선택합니다
Bayes' theorem
베이즈 정리는 조건부 확률을 계산하는 방법 중 하나
P(A) : A가 일어날 확률
P(B) : B가 일어날 확률
P(B|A) : A가 일어나고나서 B가 일어날 확률
P(A|B) : B가 일어나고나서 A가 일어날 확률
$$P(A|B)=\frac{P(B|A)P(A)}{P(B)}$$
Example
스팸 메일 분류기
P(정상 메일 | 입력 텍스트) = 입력 텍스트가 있을 때 정상 메일일 확률
P(스팸 메일 | 입력 텍스트) = 입력 텍스트가 있을 때 스팸 메일일 확률
이를 베이즈 정리에 따라서 표현하면,
P(정상 메일 | 입력 텍스트) = (P(입력 텍스트 | 정상 메일) × P(정상 메일)) / P(입력 텍스트)
P(스팸 메일 | 입력 텍스트) = (P(입력 텍스트 | 스팸 메일) × P(스팸 메일)) / P(입력 텍스트)
그런데 두 확률 모두 식을 보면 P(입력 텍스트)를 분모로 하고 있음
그렇기 때문에 분모를 양쪽에서 제거하여 식을 간소화함
이때 you free lottery라는 입력 텍스트에 대해서 정상 메일일 확률과 스팸 메일일 확률 구해보기
P(정상 메일 | 입력 텍스트) = P(you | 정상 메일) × P(free | 정상 메일) × P(lottery | 정상 메일) × P(정상 메일)
P(스팸 메일 | 입력 텍스트) = P(you | 스팸 메일) × P(free | 스팸 메일) × P(lottery | 스팸 메일) × P(스팸 메일)
P(정상 메일) = P(스팸 메일) = 총 메일 6개 중 3개 = 0.5
둘이 같으니 생략하겠음
P(정상 메일 | 입력 텍스트) = P(you | 정상 메일) × P(free | 정상 메일) × P(lottery | 정상 메일)
P(스팸 메일 | 입력 텍스트) = P(you | 스팸 메일) × P(free | 스팸 메일) × P(lottery | 스팸 메일)
P(you | 정상 메일)을 구하는 방법은 정상 메일에 등장한 모든 단어의 빈도 수의 총합을 분모로하고,
정상 메일에서 you가 총 등장한 빈도의 수를 분자로 하는 것
따라서, 2/10 = 0.2
P(정상 메일 | 입력 텍스트) = 2/10 × 2/10 × 0/10 = 0
P(스팸 메일 | 입력 텍스트) = 2/10 × 3/10 × 2/10 = 0.012
P(정상 메일 | 입력 텍스트) < P(스팸 메일 | 입력 텍스트)이므로 입력 텍스트 you free lottery는 스팸 메일로 분류
정상 메일에 lottery가 단 한 번도 등장하지 않았고, 그 이유로 정상 메일일 확률 자체가 0%가 되어버림
이처럼 분자가 0이 되는 것을 막기 위해 나이브 베이즈에선 라플라스 스무딩을 사용함
라플라스 스무딩
가중치 α를 이용하여 스무딩의 정도를 정할 수 있음. α는 주로 0.5 또는 1을 사용
P(lottery | 정상 메일) = $ \frac{0 + 1}{10 + 2} = 0.083 $
나이브 베이즈의 특징
장점
- 결과 도출을 위해 조건부 확률(우도, 사후확률)만 계산하면 되므로, 간단하고 계산량이 적어 빠른 모델
- 다중 클래스(multiple class) 예측을 위해서도 사용 가능
- 큰 데이터셋에 적합하지만, 작은 데이터셋으로도 충분히 훈련 가능
단점
- 연속형보다 이산형 데이터에서 성능이 좋음
- 특성 간의 상관관계가 존재하는 경우에는 성능이 저하
Referenceshttps://wikidocs.net/22892
10-05 나이브 베이즈 분류기(Naive Bayes Classifier)
텍스트 분류를 위해 전통적으로 사용되는 분류기로 나이브 베이즈 분류기가 있습니다. 나이브 베이즈 분류기는 인공 신경망 알고리즘에는 속하지 않지만, 머신 러닝의 주요 알고리즘으로 …
wikidocs.net
[기계학습] 나이브 베이즈(Naive Bayes) 원리
나이브 베이즈(Naive Bayes) 분류기는 지도 학습의 한 종류로, 베이즈 정리(Bayes' theorem)에 기반한 분류 알고리즘입니다. 특히 텍스트 분류, 스팸 메일 필터링, 감성 분석 등 다양한 분야에서 활용되
gsbang.tistory.com
'전공 > 머신러닝' 카테고리의 다른 글
[ML] 의사 결정 나무 (Decision Tree), Entropy/Impurity (1) | 2024.11.21 |
---|---|
[ML] 머신러닝 평가지표, Confusion Matrix/Accuracy/MSE.. (0) | 2024.11.20 |
[ML] 소프트맥스 회귀 (Softmax Regression) (0) | 2024.11.20 |
[ML] 원핫인코딩(One-Hot Encoding) (0) | 2024.11.20 |
[ML] 로지스틱 회귀 (Logistic Regression) (0) | 2024.11.09 |