Broccoli's House
#2-(4) 지도학습 알고리즘 : 나이브 베이즈 본문
※ 이 글의 내용은 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/나이브_베이즈_분류)
매개변수
- 나이브 베이즈 모델 평가
'공부 > 머신러닝' 카테고리의 다른 글
#2-(6) 지도학습 알고리즘 : 결정 트리 앙상블 (0) | 2018.02.01 |
---|---|
#2-(5) 지도학습 알고리즘 : 결정 트리 (0) | 2018.01.31 |
#2-(3) 지도학습 알고리즘 : 선형 모델 (0) | 2018.01.21 |
#2-(2) 지도학습 알고리즘 : k-최근접 이웃(k-NN) (0) | 2018.01.20 |
#2-(1) 지도 학습 (0) | 2018.01.20 |