매일공부

[sklearn] Naïve Bayes 나이브 베이즈 본문

IT/ML

[sklearn] Naïve Bayes 나이브 베이즈

aram 2022. 11. 10. 00:36

 

경험적 확률(사전 확률) : 주사위 1000번을 굴렸을 때 1이 나올 횟수에 대해 계산하기 위해 추론한 1/6의 확률

• 빈도론(Frequentism)의 입장
>>
주사위 굴리기에서 1이 나오는 확률은 무한히 많은 주사위 굴리기 경험을 통해 1 이 나오는 빈도가 1/6에 수렴하는 객관적인 사건
• 베이지안(Baysianism)의 입장 
>>
주관적으로 사전 확률을 정한 다음 데이터를 관찰하며 가능도를 계산
     ex) 주사위는 6면이 있으니 한 번의 시행에서 6은 1/6의 확률을 사전 확률

• 결합 확률 - 두 가지 이상의 사건이 동시에 발생하는 확률

 

베이즈 정리

  •  두 확률 변수의 사전 확률과 사후 확률 사이의 관계를 나타내는 정리 
  • 뒤 사건이 발생할 확률(posterior probability)는 앞 사건이 발생했던 확률에 어떤 값을 해서 나온다.

 

조건부 확률 

  • 전체 : 사건 B 발생(Before) => 사건 A 발생(After) 
  • 정의 : 사건 B가 일어난 후 사건 A가 일어날 확률 
  • P(A) : 사건 A가 일어날 확률 
  • P(B) : 사건 B가 일어날 확률 => 사건 A가 발생하기 전 사건 B가 일어날 확률 = 사전 확률 
  • P(A|B)
    :
    사건 B가 일어난 후 사건 A가 일어날 확률 = 조건부 확률 
    : 사전확률 A에  사건 A 가 일어났을 때 사건 B의 확률을 곱한 다음,
      사건 B가 일어날 확률로 조정해주면 조건부 확률 P(A|B)를 얻을 수 있다
  • P(B|A)
    :
    사건 A가 일어났을 때 사건 B가 앞서 일어났을 확률 = 사후 확률
    : 사전확률 B 에 사건 B가 일어났을때 사건 A의 확률을 곱한 다음
      사건 A가 일어날 확률로 조정해주면 사후 확률 P(B|A)를 얻을 수 있다
  • P(X, Y) ⇒ 데이터가 X, Y 특징을 모두 가질 확률
  • P(X, Y | A) ⇒ 레이블이 A인 데이터가 X, Y 특징을 모두 가질 확률
  • P(A | X, Y) ⇒ X, Y 특징을 모두 갖는 데이터가 레이블 A에 속할 확률

문제 참고 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=vollollov&logNo=220975294633 

 

나이브 베이지안(Naive Bayesian) 알고리즘 

- 나이브 Naïve : 모든 사건이 독립사건이라는 순진한(naive) 가정
        +
- 베이즈 Bayes : 전체 대비 특정 클래스에 속할 확률
- 지도 학습(supervised learning)  >> 큰 데이터셋에 적합
- Prior(특정 결과의 출현확률이 더 많다고 가중치를 주는 행위) 직접 설정 가능 <> 특정 범주 분류 정확성 UP
- P(A, B) =  P(B|A) x P(A) = P(B, A) = P(A) x P(B)

나이브 베이즈의 장점

- 간단하고, 빠르며, 정확한 자연어 분류
- computation cost이 작다 
- 예측을 위한 추정 확률 쉽게 얻을 수 있음

나이브 베이즈의 단점

- 모든 특징이 동등하게 중요
- 독립이라는 가정이 잘못된 경우가 자주 있음

 

Naïve Bayes Classification 의 종류

Gaussian Naive Bayes (가우시안 나이브 베이즈)

- 설명변수 : 연속형 변수
- 표본 평균과 표본 분산을 가진 정규분포 가정,
  항상 같은 분모를 갖는 조건에 분자의 값이 가장 큰 경우, 확률이 가장 높은 경우 "선택"

- 하이퍼파라미터
var_smoothing: float, default=1e-9

- 예시코드]  

from sklearn.naive_bayes import GaussianNB

hyperparameters = {     
 'var_smoothing': np.logspace(0, -9, num=100)
}

Multinomial Naive Bayes (다항 나이브 베이즈) 

- 설명변수 : 이산형 변수

- 하이퍼파라미터
alpha: float, default=1.0   #평활화 파라미터값 설정
fit_prior: bool, default=True   #선행 확률 학습 설정  (False인 경우 동일한 사전 정보 사용)

- 예시코드]  

from sklearn.naive_bayes import MultinomialNB

hyperparameters = {
    'alpha'     : [0.5, 1.0, 1.5, 2.0, 5],
    'fit_prior' : [True, False],
}

 

활용방안

  • 이진 분류(binary classification) : 스팸필터링, 비정상적인 상황 감지, 질병 진단 등
  • 다중 분류(multi-class classification) : 문서 분류 등

 

* 실습 참고 링크 : https://wikidocs.net/22892

 

10-05 나이브 베이즈 분류기(Naive Bayes Classifier)

텍스트 분류를 위해 전통적으로 사용되는 분류기로 나이브 베이즈 분류기가 있습니다. 나이브 베이즈 분류기는 인공 신경망 알고리즘에는 속하지 않지만, 머신 러닝의 주요 알고리즘으로 …

wikidocs.net

 

* 내용참고&출처 : 태그의 수업을 복습 목적으로 정리한 내용입니다.

728x90
Comments