본문 바로가기
컴퓨터/파이썬을 활용한 머신러닝 쿡북

18. 나이브 베이즈

by 하링아 2020. 6. 19.
반응형

18. 나이브 베이즈 (물러 터진 베이즈 이론)

베이즈 이론 : 새로운 정보 P(B|A)와 사건의 사전 확률 P(A)가 주어졌을 때 어떤 사건이 일어날 확률을 이해하는 방법

 

나이브 베이즈 : 머신러닝에서 베이즈 이론을 분류에 적용한 것

 

나이브 베이즈 기능

- 직관적인 방법

- 작은 데이터에서 사용 가능

- 훈련과 예측 계산 비용 적음

- 환경이 바뀌어도 안정적인 결과

 

나이브 베이지 분류기 식 :  P(y|x1,...,xj) = P(x1,...,xj|y)P(y) / P(x1,...,xj)

 

- P(y|x1,...,xj) : 사후 확률(posterior)이라 부르며 샘플의 j개 특성 값 x1,... , xj이 주어졌을 때 이 샘플이 클래스 y에 속할 확률

- P(x1,...,xj|y) : 클래스 y가 주어졌을 때 샘플의 특성 값 x1, ..., xy의 가능도(likelihood)

- P(y) : 사전 확률. 데이터를 보기 전에 클래스 y의 확률에 대한 믿음

- P(x1, ..., xj) : 주변 확률(marginal probability)

 

나이브 베이즈에서는 가능한 각 클래스에 대해 샘플 사후 확률 비교 (비교하는 동안 분모는 일정 -> 사후 확률의 분자 비교)

각 샘플에 대해 사후 확률의 분자가 가장 큰 클래스가 예측 클래스가 됨.

 

나이브 베이즈 분류기 중요점

- 데이터에 있는 각 특성에 대해 가능도의 통계적 분포 P(xj | y)를 가정해야 함. 정규 분포(가우시안), 다항 분포, 베르누이 분포 자주 사용. 특성의 성질(연속, 이진 등)에 따라 분포 선택

- 각 특성과 특성의 가능도가 독립적이라고 가정. 가정이 잘못된 경우가 많지만 실제로 높은 품질의 분류기를 만드는데 방해는 안됨.

 

연속적인 특성으로 분류기 훈련

- 연속적인 특성으로 분류기 훈련 : sklearn's GaussianNB 사용 :  가장 많이 사용하며 클래스 y의 샘플이 주어졌을 때 특성 값 x의 가능도가 정규 분포를 따른다고 가정

- 나이브 베이즈 분류기의 흥미로운 점 : target class에 사전 확률 지정 가능

- 사전 확률을 지정하지 않을 시 데이터를 기반으로 계산

- 가우시안 나이브 베이즈의 예측 확률은 보정되어 있지 않음. 쓸만한 예측을 위해서 Isotonic regression나 관련된 다른 방법 사용하여 보정

 

이산적인 카운트 특성으로 분류기 훈련

- Multinomial naive bayes 분류기 사용

- 특성이 다항 분포라고 가정

- BoW(bag of words) or tf-idf 방식을 사용한 텍스트 분류에서 이용

 

# TF-IDF는 정보 검색과 텍스트 마이닝에서 이용하는 가중치로, 여러 문서로 이루어진 문서군이 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치

# BoW(단어 가방 모델)는 자연어 처리 및 정보 검색에 사용되는 단순화된 표현입니다. 이 모델에서 텍스트는 문법 및 단어 순서는 무시하고 다중성을 유지하면서 단어의 가방으로 표시됩니다. 

 

- MultinomialNB는 평탄화 매개변수 alpha가 존재. 튜닝해야 함.

 

이진 특성으로 나이브 베이즈 분류기 훈련

- 베르누이 나이브 베이즈 분류기 사용

- 모든 특성이 두 종류 값(이진 특성)만 발생한다 가정 (예를 들어 원-핫 인코딩 된 순서 없는 범주형 특성)

- 텍스트 분류(문서에 어떤 단어가 등장하는지 여부)에 이용

- 평탄화 매개 변수 존재

 

예측 확률 보정

- 나이브 베이즈 분류기를 포함, 일부 모델은 실전과 안 맞는 확률 반환 (0.1 또는 0.99일 때 0.7로 예측)

- 특히 나이브 베이즈는 타깃 클래스에 대한 예측 확률의 순위는 유효하지만 예측 확률이 0 또는 1에 극단적으로 가까움

- 의미 있는 예측을 위해 보정 필요

 

 

참고

 

핸즈온 머신러닝

https://4four.us/article/2016/03/calibrating-model-prediction

 

반응형

'컴퓨터 > 파이썬을 활용한 머신러닝 쿡북' 카테고리의 다른 글

2. 데이터 적재  (0) 2020.07.17
1. 벡터, 행렬, 배열  (1) 2020.06.23
21. 훈련된 모델 저장과 복원  (2) 2020.06.19

댓글