나이브 베이즈(Naive Bayes)는 조건부 확률을 기반으로 하는 분류 알고리즘으로, 각 특성(features)들이 서로 독립적이라고 가정하고 베이즈 정리를 이용하여 분류를 수행합니다.
1. 베이즈 정리 (Bayes' Theorem)
베이즈 정리와 우도
2. 나이브 베이즈 분류기 (Naive Bayes Classifier)
나이브 베이즈 분류기의 목표는 주어진 데이터에 대해 각 클래스의 확률을 계산하고, 가장 높은 확률을 가진 클래스를 선택하는 것입니다.
C를 클래스, x=(x1,x2,…,xn)을 특성 벡터라고 할 때, 나이브 베이즈 분류기는 다음과 같이 클래스를 예측합니다.
y^=argmaxCkP(Ck∣x1,x2,…,xn)
베이즈 정리를 이용하면 이를 다음과 같이 변형할 수 있습니다:
P(Ck∣x1,x2,…,xn)=P(x1,x2,…,xn)P(x1,x2,…,xn∣Ck)P(Ck)
여기서 P(Ck)는 클래스 Ck의 사전 확률(prior probability)이고, P(x1,x2,…,xn∣Ck)는 클래스 Ck에 대한 특성들의 조건부 확률입니다.
3. 나이브 가정 (Naive Assumption)
나이브 베이즈의 핵심 가정은 각 특성들이 서로 독립적이라는 것입니다.
즉, 특성들 간의 상관관계를 고려하지 않고, 각 특성이 클래스 Ck에 조건부로 독립적이라고 가정합니다.
이 가정을 통해 조건부 확률을 분해할 수 있습니다:
P(x1,x2,…,xn∣Ck)=∏i=1nP(xi∣Ck)
따라서 최종적으로 나이브 베이즈 분류기의 예측 식은 다음과 같습니다:
y^=argmaxCk(P(Ck)∏i=1nP(xi∣Ck))
4. 정리
나이브 베이즈 분류기는 그 단순성과 효율성 덕분에 많은 실제 문제에서 유용합니다.
특성들이 독립적일 때 이상적인 성능을 보이며, 텍스트 분류와 같은 분야에서는 매우 뛰어난 성능을 발휘할 수 있습니다.
그러나 특성 간 의존성이 큰 문제에서는 성능이 저하될 수 있습니다. 그리고 독립성 가정이 현실과 다를 수도 있습니다.
5. 예제
(1). 데이터
| 샘플 | 특성 1 | 특성 2 | 클래스 |
|---|
| 1 | 1 | 1 | A |
| 2 | 1 | 0 | A |
| 3 | 0 | 1 | B |
| 4 | 0 | 0 | B |
| 5 | 1 | 1 | A |
| 6 | 0 | 1 | B |
(2). 목표
특성 1이 1이고, 특성 2가 0인 샘플이 주어졌을 때, 해당 샘플이 클래스 A인지 클래스 B인지 예측하고자 합니다.
(3). 베이즈 정리
베이즈 정리에 따라, 주어진 특성에 대해 각 클래스의 조건부 확률을 구합니다.
P(Ck∣x1,x2)=P(x1,x2)P(x1,x2∣Ck)P(Ck)
여기서 Ck는 클래스 A 또는 B, x1은 특성 1, x2은 특성 2입니다.
이제 베이즈 정리를 사용하여 각 클래스에 대해 조건부 확률을 계산합니다.
(4). 사전 확률 P(Ck)
클래스 A와 B의 사전 확률을 먼저 계산합니다.
각 클래스의 확률은 해당 클래스가 데이터셋에서 등장하는 빈도로 계산됩니다.
-
P(A): 클래스 A는 3번 (샘플 1, 2, 5) 등장하므로:
P(A)=63=0.5
-
P(B): 클래스 B는 3번 (샘플 3, 4, 6) 등장하므로:
P(B)=63=0.5
(5). 조건부 확률 P(xi∣Ck)
다음으로 각 특성에 대해 주어진 클래스에서의 조건부 확률을 계산합니다.
P(x1=1∣A) (특성 1이 1일 때 클래스 A일 확률):
클래스 A에서 특성 1이 1인 샘플은 샘플 1과 5입니다. 따라서:
P(x1=1∣A)=32
P(x1=1∣B) (특성 1이 1일 때 클래스 B일 확률):
클래스 B에서 특성 1이 1인 샘플은 없습니다. 따라서:
P(x1=1∣B)=30=0
P(x2=0∣A) (특성 2가 0일 때 클래스 A일 확률):
클래스 A에서 특성 2가 0인 샘플은 샘플 2입니다. 따라서:
P(x2=0∣A)=31
P(x2=0∣B) (특성 2가 0일 때 클래스 B일 확률):
클래스 B에서 특성 2가 0인 샘플은 샘플 4입니다. 따라서:
P(x2=0∣B)=31
(6). 사후 확률 계산
이제 각 클래스에 대해 조건부 확률을 계산할 수 있습니다.
클래스 A의 사후 확률 P(A∣x1=1,x2=0):
P(A∣x1=1,x2=0)∝P(A)⋅P(x1=1∣A)⋅P(x2=0∣A)
P(A∣x1=1,x2=0)∝0.5⋅32⋅31=91
클래스 B의 사후 확률 P(B∣x1=1,x2=0):
P(B∣x1=1,x2=0)∝P(B)⋅P(x1=1∣B)⋅P(x2=0∣B)
P(B∣x1=1,x2=0)∝0.5⋅0⋅31=0
왜 사후 확률 계산식이 베이즈 정리와 다른가?
-
정확한 사후 확률 값은 정규화 상수를 포함해야 하지만, 두 확률 값을 비교할 때는 이 값이 중요하지 않습니다.
(값을 비교하는 과정에서 어차피 정규화 상수는 소거되기 때문)
따라서 정규화 상수를 생략하고 위와 같이 비례식을 사용하여 비교합니다.
-
P(x1,x2,…,xn) : 전체 확률을 고려한 정규화 상수
-
∝ : 비례한다
(7). 결론
- P(A∣x1=1,x2=0)=91
- P(B∣x1=1,x2=0)=0
따라서, 특성 1이 1이고, 특성 2가 0인 경우, 클래스 A에 속할 확률이 더 높으므로, 예측된 클래스는 A입니다.