Broccoli's House

#2-(4) 지도학습 알고리즘 : 나이브 베이즈 본문

공부/머신러닝

#2-(4) 지도학습 알고리즘 : 나이브 베이즈

김콜리 2018. 1. 21. 16:15

※ 이 글의 내용은 O'REILLY의 <파이썬 라이브러리를 활용한 머신러닝> 책을 기반으로 한다.




지도 학습 알고리즘 : 나이브 베이즈



  • 나이브 베이즈 분류기 

 - 나이브 베이즈(Naive Bayes) 분류기 : 데이터의 각 특성을 개별로 취급하여 매개변수를 학습하고, 각 특성에서 클래스  별로 통계를 단순하게 취합한다. 선형 모델과 매우 유사하나 로지스틱 회귀(Logistic Regression)나 선형 SVC보다 훈련 속도가 빠르고, 일반화 성능은 조금 뒤쳐진다. 데이터의 특성들이 각각 독립적이고 동등하게 중요하다는 'Naive(순진한)' 가정이 들어간다. 그러나 실제 문제에서 모든 특성이 동등하게 중요하지 않는 경우가 많다.


 - Ex) 어떠한 병에 걸릴 확률이 1%, 걸리지 않을 확률이 99%, 그 병에 대한 검사를 할 확률이 20%, 검사하지 않을 확률이 80%라고 생각한다. 각각의 경우가 독립적이라고 가정하면, 다음과 같이 동시확률분포(Joint Probability)를 계산할 수 있다. 


 

검사 O

검사 X

합계 

 병 O

 0.2 × 0.01 = 0.002

(0.2%)

0.8 × 0.01 = 0.008

(0.8%)

0.01

(1%)

 병 X

 0.2 × 0.99 = 0.198

(19.8%)

0.8 × 0.99 = 0.792

(79.2%)

0.99

(99%)

 합계

0.2

(20%)

0.8

(80%)

1

(100%)


 - 계산된 통계를 취합하여 각 클래스별로 특성의 평균을 계산한다. 새로운 데이터 포인트가 주어지면, 클래스의 통계 값과 비교하여 가장 잘 맞는 클래스를 예측값으로 사용한다.


 - 주로 사용되는 나이브 베이즈 분류기에는 가우시안 나이브 베이즈(GaussianNB), 베르누이 나이브 베이즈(BernoulliNB), 다항분포 나이브 베이즈(MultinomialNB)가 주로 사용된다. 가우시안 나이브 베이즈는 연속적인 모든 데이터에 적용할 수 있고, 베르누이 나이브 베이즈는 이진 데이터를, 다항분포 나이브 베이즈는 카운트 데이터(ex. 문장 속에 사용된 단어 횟수)에 적용된다. 베르누이와 다항분포 나이브 베이즈는 주로 텍스트 데이터를 분류할 때 사용된다. 


 - 가우시간 나이브 베이즈는 대부분 매우 고차원인 데이터 세트에 사용하고, 다른 두 나이브 베이즈 모델은 텍스트 같은 희소한 데이터를 카운트하는데 사용한다. 다항분포 나이브 베이즈는 보통 0이 아닌 특성이 비교적 많은 데이터 세트(큰 문서)에서 베르누이 나이브 베이즈보다 성능이 높다.


 - 다항분포 나이브 베이즈는 클래스별로 특성의 평균을 계산하는데 반해, 가우시안 나이브 베이즈는 클래스별로 각 특성의 표준편차와 평균을 저장하여 이를 데이터 포인트와 비교해 예측 값을 출력한다.


 - 다항분포와 베르누이 나이브 베이즈의 예측 공식은 선형 모델(y=wx+b)과 형태가 같으나, 나이브 베이즈 모델의 계수 w는 기울기가 아니라서 선형 모델과는 의미가 다르다.


 - 나이브 베이즈 가우시간 분류 예제 : 주어진 특성으로 남성과 여성 구분

(예제 : https://ko.wikipedia.org/wiki/나이브_베이즈_분류)




  • 매개변수

 - 다항분포와 베르누이 나이브 베이즈는 모델의 복잡도를 조절하는 매개변수 α를 가지고 있다. α가 주어지면, 알고리즘이 모든 특성에 양의 값을 가진 가상의 데이터 포인트를 α의 수만큼 추가한다. 이로 인해 통계 데이터를 완만하게 만들어준다.
 - α가 크면 추가되는 양의 데이터가 많아 통계 데이터가 더 완만해지고 모델의 복잡도는 낮아진다. 다만, α에 따른 알고리즘의 성능 변동은 비교적 크지 않아서, α 값이 성능 향상에 크게 기여하지는 않는다. 그러나 α를 조절하면 어느 정도 정확도를 높일 수 있다.



  • 나이브 베이즈 모델 평가
 - 나이브 베이즈 모델과 선형 모델은 장단점이 비슷하다. 훈련과 예측 속도가 빠르고, 훈련 과정을 이해하기 쉽다. 희소한 고차원 데이터에서 잘 작동하며, 비교적 매개변수에 민감하지 않다. 선형 모델로는 학습 시간이 너무 오래 걸리는 매우 큰 데이터 세트에는 나이브 베이즈 모델을 시도해볼만하며, 종종 사용된다.


Comments