나이브베이즈 분류기

기린이·2022년 6월 3일
0
post-custom-banner

게시물을 참고하였습니다.

데이터 클래스 2개, x라는 데이터 주어짐

P(cix) for i=1,2P(c_i | x)\text{ for }i=1, 2

P(c1x)>?P(c2x)P(c_1 | x) >? P(c_2 | x)

두 개중 어떤 확률이 높은지 비교하면 될 것이다.

P(xc1)P(c1)p(x)>?P(xc2)P(c2)p(x)\frac{P(x | c_1)P(c_1)}{p(x)} >? \frac{P(x | c_2)P(c_2)}{p(x)}

분모가 같으므로 생략하여 비교하면 된다.

P(xc1)P(c1)>?P(xc2)P(c2)P(x | c_1)P(c_1) >? P(x | c_2)P(c_2)

예를 들어 c1=여자, c2=남자, x=키가 155cm 라면

P(c1)=전체데이터중여자비율P(c_1)=전체데이터중 여자 비율 , P(c2)=전체데이터중남자비율P(c_2)=전체데이터중 남자 비율
P(xc1)=여자중에키가155cm인비율P(x | c_1)=여자중에 키가 155cm인비율
P(xc2)=남자중에키가155cm인비율P(x | c_2)=남자중에 키가 155cm인비율

가능도와 사전지식의 조합으로 비교하는 것이다.

피쳐가 여러개라면 식은 복잡해진다.

P(c1x1,x2,,xn)>?P(c2x1,x2,,xn)P(c_1 | x_1, x_2, \cdots, x_n) >? P(c_2 | x_1, x_2, \cdots, x_n)

전개하면
P(c1x1,x2,,xn)=P(c1)P(x1c1)P(x2c1,x1)P(x3c1,x1,x2)P(xnc1,x1,x2,xn1)P(c_1 | x_1, x_2, \cdots, x_n) = P(c_1) P(x_1|c_1) P(x_2 | c_1, x_1) P(x_3 | c_1, x_1, x_2) \cdots P(x_n | c_1, x_1, x_2, \cdots x_{n-1})

여기서 식을 단순화하기 위해 피쳐끼리 독립이라는 naive한 가정을 한다.

P(c1x1,x2,,xn)=P(c1)P(x1c1)P(x2c1)P(x3c1)P(xnc1)P(c_1 | x_1, x_2, \cdots, x_n) = P(c_1) P(x_1|c_1) P(x_2 | c_1) P(x_3 | c_1) \cdots P(x_n | c_1)

여자의 비율 x 여자중 키가155cm인 비율 x 여자중 몸무게가 55kg인 비율 x .....

이런 식으로 구하면 된다.

사전지식과 여러 피쳐에 대한 가능도를 곱해나가면 된다.

이러한 확률을 비교하여 분류기를 만드는 것이 나이브 베이즈 분류기이다.

profile
중요한 것은 속력이 아니라 방향성, 공부하며 메모를 남기는 공간입니다.
post-custom-banner

0개의 댓글