Naive Bayes Classifier(스팸메일 필터 알고리즘)

Naive Bayes Classifier(스팸메일 필터 알고리즘) 

[정의]

Bayes’ Theorem에 근거한 분류법이며 naïve Bayes 알고리즘은 문서를 통계적 기법을 이용하여 클래스를 규정하는 알고리즘이다. Naive Bayes라는 이름의 Naïve는 이 알고리즘이 Bayes 기술을 사용하지만 있을 수 있는 종속성을 고려하지 않는 다는 것이다.

 

이 알고리즘은 입력 열과 예측 가능한 열 간의 관계를 검색하는 마이닝 모델을 신속하게 생성하는데 유용하다. 이 알고리즘을 사용하여 초기 데이터 탐색을 수행한 후 나중에 그 결과를 적용하여 보다 복잡하고 정확한 다른 알고리즘으로 추가 마이닝 모델을 만들 수 있다.

 

[활용 사례]

대표적인 사용 사례가 스팸 메일 필터에 사용한다. 이전에 스팸으로 처리한 문서를 기반으로 앞으로 들어오는 문서가 스팸인지 아닌지 판단하는 방법이다.

알고리즘 앞에 naïve가 의미하는 것은 예전 스팸 문서에 a, b, c 라는 단어가 있다고 가정 할 때 b가 나타날 확률은 a나 c와 무관하다고 가정 하는 것이다.

 

 

(가정)

  • 총 74개 중에 30개의 이메일은 스팸 메시지다.
  • 74개중 51개의 이메일은 test 라는 단어를 포함하고 있다.
  • Test란 단어가 들어있는 20개의 이메일을 스팸으로 분류 했다.

 

(확률)

최근 수신한 메일에 test가 포함되었을 경우 스팸일 확률은 다음과 같다. A:spam, B:test라면 아래처럼 Bayesian 알고리즘에 의해서 P(A|B) = P(B|A)P(A)/P(B)

 

  • P(A|B) : 사건 B가 발생한 상태에서 사건 A가 발생할 조건부 확률
  • P(B|A) : 사건 A가 발생한 상태에서 사건 B가 발생할 조건부 확률
  • P(A) : 사건 A가 발생할 확률, B에 대한 어떠한 정보도 없는 상태에서 A가 발생활 확률
  • P(B) : 사건 B가 발생할 확률, A에 대한 어떠한 정보도 없는 상태에서 B가 발생할 확률

 

확률을 계산하면

P(B-test)는 51/74

P(A-spam) : 스팸일 확률 : 30/74

스팸이라는 발생한 상태에 test가 들어갈 확률 : 20/30

 

즉 test가 포함된 email의 스팸일 확률은 0.39의 값이 산출 된다. 여기서 문제점은 test라는 단어가 있다고 무조건 스팸으로 판단하는 것은 오류일 확률이 높다. 조건 확률을 추가 하면 연관 확률이 높아지는 형태로 판단해서 스팸의 분류 판단이 좀더 정확해 진다.

 

[조건 확률 추가]

(가정)

  • Friday가 포함된 이메일이 25개
  • 그중 24 이메일은 스팸으로 분류됨

 

[Friday]와 [test]가 포함된 이메일의 스팸일 확률 공식은 다음과 같다.

 

 

[참고 자료]

http://www.mimul.com/pebble/default/2012/04/03/1333431077222.html

 

 

2013-05-31 / 강성욱 / http://sqlmvp.kr / http://sqlangeles.com

 

 

데이터마이닝, 머신러닝, MachineLearning, NaiveBayesClassifier, 문서적통계기법, 입력열과예측가능한열관계검색마이닝, 스팸필터알고리즘, 스팸메일방어하기, 데이터마이닝알고리즘, sqlmvp, sqlangeles

Leave a Reply