조건부 확률을 사용하는 분류 모델
파라미터 추정은 최대우도추정법(MLE)을 사용한다.
장점
1. 적은 수의 데이터로도 훈련 가능하다.
2. 간단하지만 꽤 높은 성능을 보인다.
이론
나이브 베이즈의 나이브(Naive) 뜻은 크게 생각하지 않고 작성했다로, 별 고려 없이 무언가를 했다로 보면 비슷하다. 보통 일을 할 때 나이브하게 ~를 했다라고 하는 그 나이브와 같다.
그럼 왜 나이브 베이즈에 Naive가 있을까?
그 이유는 나이브 베이즈는 모든 변수가 서로 독립이라는 가정을 하기 때문이다.(실제로 독립이 아니더라도)
나이브 베이즈에 Bayes가 들어가는 이유는 베이즈 정리를 기초로 하기 때문이다.
* P(A|B) = P(AUB)/P(B) = P(B|A)P(A)/P(B)
데이터에는 구하고자 하는 타겟이 존재할 텐데, 주어진 데이터 x에서 target1일 확률을 구해보면
P(target1)P(x|target1) / P(x)이라는 조건부 확률을 구할 수 있다.
나이브 베이즈는 이 조건부 확률을 비교하여 더 높은 확률값의 클래스를 선택하는 분류기이다.
즉 이진분류 문제에서는,
P(target1)P(x|target1) / P(x) ...(1)
P(target0)P(x|target0) / P(x) ...(2)
두 가지를 비교해 더 높은 확률의 클래스가 맞다고 판별할 수 있다.
여기서 (1), (2)의 분모는 동일하기 때문에 사실상 분자만 유의미하다고 보면 된다.
이제 하나의 변수가 아닌 다수의 변수를 사용할 경우에는(분모는 위에서 의미없다는 걸 확인했으므로 제외)
P(target1 | x1,x2..,xn) = P(target1)P(x1,x2..,xn|target1)
= P(target1)P(x1|target1)P(x2..,xn|target1,x1) ...(A)
...
= P(target1)P(x1|target1)...P(xn|target1,x1,x2..,xn-1) 이 된다.
추가로 조건부 독립을 사용하여(x2에는 x1이 반영되지 않음)
P(x2|target1,x1) = p(x2|target1)으로 가능하고, 나머지에 모두 적용하면
P(target1 | x1,x2..,xn) = P(target1)P(x1|target1)...P(xn|target1)
으로 표현할 수 있게 된다. 다른 타겟에도 같은 방법을 사용하여 더 높은 확률의 클래스로 판별하면 된다.
(A)
P(x1,x2..,xn|target1) = p(x1,x2...,target1) / p(target1)이다. 여기서 분자 분모에 P(Ptarget1,x1)을 곱해주면
= P(x1,target1) / p(target1) * P(x2...,target1) / P(x1,target1)
= P(x1|target1)P(x2,...xn|x1,target1)
이 된다.
실습
tbd