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 |
댓글