나이브 베이즈 모델 Naive Bayes
- 베이즈 정리를 적용한 조건부 확률 기반의 분류 모델
- 조건부 확률: A가 일어났을 때 B가 일어날 확률
- 딥러닝보다 간단한 방법으로 자연어 처리를 원할 때 나이브 베이즈 모델을 사용
장점 | 단점 |
비교적 간단한 알고리즘에 속하며 속도 또한 빠름 | 모든 독립변수가 각각 독립적임을 전제로 하는데 이는 장점이 되기도하고 단점이 되기도 함 |
작은 훈련셋으로도 잘 예측함 | 실제로 독립변수들이 모두 독립적이라면 다른 알고리즘보다 우수할 수 있지만, 실제 데이터에서 그런 경우가 많지 않기 때문에 단점임 |
- 각 독립변수들이 모두 독립적이고 그 중요도가 비슷할 때 유용함
- 자연어 처리(NLP)에서 간단하지만 좋은 성능을 보여줌
- 범주 형태의 변수가 많을 때 적합하며, 숫자형 변수가 많은 때는 적합하지 않음
코드
from sklearn.naive_bayes import MultinomialNB
model = MultinomialNB() # 모델 생성
model.fit(x_train, y_train) # 학습
pred = model.predict(x_test) # 예측
- MultinomialNB: 다항 분포에 대한 Naive Bayes 알고리즘
- GaussianNB: 정규 분포에 대한 Naive Bayes 알고리즘
- BernoulliNB: 베르누이 분포에 따른 Naive Bayes 알고리즘
조건부확률
$$P(A|B) = \frac {P(B|A) P(A)}{P(B)}$$
- P(A): B와 상관없이 A가 발생할 확률(사전 확률)
- P(B): 전체에서 B가 발생할 확률
- P(A|B): B가 발생했을 때 A가 발생할 확률(사후 확률)
- P(B|A): A가 발생했을 때 B가 발생할 확률(우도, 가능도)
참고: 데싸노트의 실전에서 통하는 머신러닝
반응형