나이브베이즈 분류기

기린이·2022년 6월 3일
0

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

데이터 클래스 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
중요한 것은 속력이 아니라 방향성, 공부하며 메모를 남기는 공간입니다.

0개의 댓글

관련 채용 정보