본문 바로가기
Machine Learning

ML #10 : 나이브베이즈 분류 개요와 특징 (Laplace Smoothing, 언더플로우)

by 무적물리 2020. 4. 21.

나이브베이즈 개요

머신러닝의 분류 알고리즘 중 하나인 나이브베이즈 분류에 대해 소개하겠습니다. 나이브 베이즈 분류의 알고리즘은 간단합니다. 매개 변수 x, y가 있을 때 그룹 A에 속할 확률을 P1(x, y), 그룹 B에 속할 확률을 P2(x, y)라고 가정하고 P1이 P2보다 크다면 그룹A로 분류하고, P2가 P1보다 크다면 그룹B로 분류합니다.


그룹 A에 속할 확률을 P1(x, y)

그룹 B에 속할 확률을 P2(x, y)


P1(x, y) > P2(x, y) → 그룹A

P1(x, y) < P2(x, y) → 그룹B



나이브베이즈 분류는 베이즈 정리에 의해 분류하려는 대상의 각 확률을 측정합니다. 나이브(Naive)란 전문적이지 않다는 뜻이며, 뜻과 동일하게 데이터를 간단하게 분류할 수 있습니다. 이는 머신러닝에서 사용되는 One Hot Encoding의 개념과 유사합니다.


나이브베이즈 특징

지도학습 환경에서 효율적으로 사용 가능

분류를 위한 학습데이터 양이 매우 적음

간단한 구조

가정이 단순

복잡한 실제 상황에서 잘 동작함


조건부 확률

분류 절차를 알아보기 전 조건부 확률에 대해 먼저 알아야 합니다. P(AlB)란, B가 발생했을 때, A일 확률을 뜻합니다. 예를 들면 새로운 메일이 스팸 메일일 확률을 구할 수 있습니다. 이 때, B는 새로운 메일이며, A는 스팸 메일에 해당 합니다.


P(AlB) = P(BlA)·P(A) / P(B)


사후확률 : P(AlB) 

사전확률 : P(A)

우도 : P(BlA)

주변 우도 : P(B)



Laplace Smoothing 

만약 기존에 없는 새로운 단어가 입력된다면 해당 단어에 대한 확률이 0이기 때문에 모든 확률이 0이 되는 문제가 발생합니다. 따라서, 각 분자에 1을 더함으로써 이를 해결할 수 있습니다. 분모에는 중복을 제거한 모든 데이터의 수를 더해줍니다.


- 각 분자에 +1

- 분모에 모든 데이터의 수 더해줌


언더플로우 방지

스팸 메일을 분류하기 위해서는 단어가 매우 많기 때문에 '광고'라는 단어가 적게 나올 수 있습니다. P(광고l스팸메일)이 너무 작아지면 0에 가까워 질 수 있기 때문에 확률에 로그을 취함으로써 언더플로우를 방지할 수 있습니다.


Log [ P(AlB) ] = Log [ P(BlA)·P(A) / P(B) ] 


댓글