본문 바로가기

Model/확률과 통계

Naive Bayes

반응형

Bayes Theorem

  • 사전확률과 우도확률을 알 때 사후확률을 계산하는 방법.
    • P(A|B)를 알고 있을 때, 관계가 정반대인 P(B|A)를 계산하기 위한 방법
    • 결과를 관측한 뒤 원인을 추론할 수 있는 방법.
  • Bayes Theorem의 통시적 해석
    • 데이터 D의 관점에서 보았을 때 가설 H의 확률을 수정해준다. 새로운 데이터가 들어올 때마가 가설에 대한 확률이 달라진다.
    • P(A|B): 사후 확률. 데이터를 확인한 이후 가설의 확률
    • P(A): 사전 확률. 데이터를 보기 전 가설의 확률
    • P(B|A): likelihood. 데이터가 가설에 포함될 확률
    • P(B): 한정 상수. 어떤 가설에든 포함되는 데이터의 비율.
  • 예: 검사에서 양성이 나왔을 때 X라는 병에 걸렸을 확률
    • A = 병에 걸렸을 사건
    • B = 검사에서 양성이 나올 사건
    • 가정
      • P(A): 1%. 전체 인구의 1%가 X 병에 걸렸다.
      • P(B): 검사에서 양성이 나올 확률. P(A) X P(B|A) + P(A) X P(B|A) --> X라는 병에 걸렸으면서 검사에서 양성이 나올 확률 + X라는 에 안 걸렸으면서 검사에서 양성이 나올 확률.
      • P(B|A): 99%. 검사 결과의 신뢰도는 99%이다.
      • P(A|B)
        = P(B|A)P(A)/P(B)
        = 0.99 X 0.01/(0.99 X 0.01 + 0.01 X 0.99)
        = 0.5

reference

Naive Bayes Classifier

  • Bayes Theorem에서 사건 A와 B가 독립이 아니더라도, 독립이라 가정하고 Bayes Theorem을 이용하여 classification 수행
    • 스팸 문서 필터링 등 간단한 classification에 자주 사용된다.
  • Naive Bayes는 독립된 n개의 feature가 있을 때, C 사건일 확률을 구하는 확률 모델로 볼 수 있다.
    image
  • Bayes Theorem을 이용하여 위 식은 아래와 같이 줄일 수 있다.

  • posterior: 특정 개체 x가 특정 그룹 c에 속할 확률값
  • prior: 특정 그룹 c가 발현할 확률(Class Prior PRobability)
  • likelihood: 특정 그룹 c에 대하여, 특정 개체 x가 거기에 속할 조건부 확률이자 likelihood. (셀 수 있는 사건에 대해선 probability distribution function과 likelihood가 동일)
  • evidence: 특정 개체가 발생할 확률, predictor prior probability. 모든 그룹에 대해 동일하기 때문에 classification 할 때는 무시하기도 함.

  • Naive Bayes Classifier의 한계
    • 확률을 계산한 결과가 0이 나오는 경우가 너무 빈번하다.
    • 모든 속성에 대한 class likelihood를 곱한다는 특성 때문에, 한 속성이라도 class likelihood가 0이 되면 결과 확률이 무조건 0이 된다.
    • class likelihood가 0이 되는 것을 방지하기 위해, 분자에 prior probabilty X bias를, 분모에 bias를 더해준다. bias가 클수록 prior probability를 더 신뢰하는 효과가 있다.
    • 종속성이 매우 높은 데이터가 주어지는 경우, 결과가 바람직하다고 확신할 수 없다. Naive Bayes는 데이터 간에 종속성이 없다고 가정하기 때문이다.

Example: Spam filter

  • Naive Bayes classifier를 스팸 필터링에 사용해 보자.
  • 예시 문장: "급전 대출 상담"
    • P(급전|스팸) = 0.1, P(대출|스팸) = 0.2, P(상담|스팸) = 0.1
    • P(급전|HAM) = 0.01, P(대출|ham) = 0.05, P(상담|ham) = 0.2
  • P(스팸|"급전 대출 상담") = P(스팸)P(급전|스팸)P(대출|스팸)P(상담|스팸) = P(스팸) * 0.1 * 0.2 * 0.1 = 0.002 P(스팸)
  • P(ham|"급전 대출 상담") = P(ham) * 0.01 * 0.05 * 0.02 = 0.00001 P(ham)
  • P(ham) = P(spam)이라고 가정하면, "급전 대출 상담"이 스팸일 가능성이 더 크다.
    • P("급전 대출 상담")은 spam, ham인 경우 모두 같으므로 생략한다.

Reference

반응형

'Model > 확률과 통계' 카테고리의 다른 글

최대 우도 추정  (0) 2020.04.12
확률론  (0) 2020.03.23