Skip to content

py naiveBayes #
Find similar titles

You are seeing an old version of the page. Go to latest version

Structured data

Category
Statistics

나이브 베이즈 분류(Naive Bayesian classification) #

나이브 베이즈 분류 란? #

나이브 베이즈(Naive Bayes)는 베이즈 이론(Bayes theorem)의 확률 모델을 기반으로 하는 강력한 분류기이지만 매우 단순하다. 기본적으로 각 속성값 확률을 기반으로 범주에 속한 인스턴스를 확률로 결정한다. 여기서 "나이브"란 용어는 각 속성은 다른 속성과 독립적이라는 의미로 즉, 속성값은 다른 속성값과 관계가 없다.

베이즈 정리 #

먼저 베이즈 정리를 살펴보면, 매개변수 x,y가 있을 때,
분류 1에 속할 확률이 p1(x,y)이고, 분류 2에 속할 확률이 p2(x,y)일때,

p1(x,y) > p2(x,y)이면, 이 값은 분류 1에 속한다
p1(x,y) < p2(x,y)이면, 이 값은 분류 2에 속한다.

1. 사전확률(prior probability)
: 관측자가 이미 알고 있는 사건으로부터 나온 확률로 P(A1), P(A2), ..., P(An)을 의미함
2. 우도(likelihood probability)
: 이미 알고있는 사건이 발생했다는 조건하에 다른 사건이 발생할 확률로, 위의 베이즈 정리에서는 P(B|A1), P(B|A2), ..., P(B|An)을 의미한다.
3. 사후확률(posterior probability)
: 사전확률과 우도를 통해서 알게되는 조건부 확률로 베이즈 정리에서는 P(Ak|B)를 의미한다.

Image ImageImage

이미지 출처 : http://j1w2k3.tistory.com/1009

나이브 베이즈 알고리즘은 이와 같이 베이즈 정리를 이용하여 분류하고자 하는 대상의 각 분류별 확률을 측정함으로써 그 확률이 더 큰 쪽으로 분류하는 방법을 취한다.

나이브 베이즈 정리 #

나이브 베이즈의 여러 어플리케이션 중 가장 성공적인 분야는 자연어 처리(NLP, Natural Language Processing)이다. 자연어 처리 분야의 많은 문제는 분류 테스크로 만들어낼 수 있기 때문에 기계학습과 매우 관련성이 높다.

예제를 통해 나이브 베이즈를 이용하여 텍스트 분류를 수행하도록 한다. 먼저 범주를 가진 텍스트 문서가 있고 보지 못한 새로운 인스턴스의 범주를 예측하도록 나이브 베이즈 알고리즘을 훈련시킨다. 아마도 가장 잘 알려지고 널리 쓰이는 것이 스팸 필터이다. python의 scikit-learn을 이용하여 뉴스 그룹 메시지를 분류하는 예제를 수행한다. 이용하고자 하는 데이터 셋은 정치, 종교, 스포츠, 과학과 같은 20개의 다른 주제로 19,000개 뉴스 그룹 메시지를 포함한다.

## sklearn.datasets 모듈의 fetch_20newgroups 함수 이용
>>> from sklearn.datasets import fetch_20newsgroups
>>> news = fetch_20newsgroups(subset = 'all')

참고 링크 #

나이브 베이즈 분류(http://bcho.tistory.com/1010)
확률과 통계 이론 "베이즈 정리"(http://j1w2k3.tistory.com/1009)

0.0.1_20210630_7_v33