본문 바로가기
개발/Python

BernoulliNB (나이브 베이즈)

by 피로물든딸기 2025. 10. 20.
반응형

전체 링크

나이브 베이즈(Naive Bayes) 모델

- 나이브 베이즈는 조건부 확률 기반 분류 모델

- 베이즈 정리를 기반으로 하고, 독립 가정(naive assumption)을 사용

- 각 특징(feature)이 서로 독립이라고 가정 → 각 특징별 확률만 계산 → 적은 계산량
- 즉, 각 특성(feature)들이 서로 독립이라고 가정

 

미래 예측을 위한 추정일 때 적합

→ 하나의 추정치를 위한 예측이 아니라, 계속 값을 수정하면서 현실적인 추정치를 찾는 기법

 

장점

- 학습과 예측이 빠름

- 연산량이 적은 모델

- 적은 데이터로도 잘 동작

- 이상치와 결측치에 로버스트함.

- 예측을 위한 추정 확률을 구할 수 있음.

- 빠른 연산량 → 대규모 데이터 적용 가능

- 텍스트 분류, 스팸 필터링, 감성 분석 등에서 효과적 (단어 빈도수 기반의 동일한 척도의 속성에 강함)

 

단점

- 특성들이 독립하지 않으면 성능 저하 가능 (독립 → 잘못된 가정)

- 가정된 확률이 예측된 클래스보다 신뢰도가 낮음.

- 0 확률 문제(특정 클래스에 특정 특성이 없을 경우) 발생 가능 → 가법 평활화 필요


 

 

→ α를 0부터 시작해서 증가하면 성능이 향상되다가 감소.

→ α가 커질수록 편향이 커짐

 

소수 클래스 불균형을 해결하는 것은 아님.


하이퍼 파라미터

from sklearn.naive_bayes import BernoulliNB

BernoulliNB(alpha=1.0, binarize=0.0, fit_prior=True, class_prior=None)

 

alpha

- 가법적 스무딩(Laplace/Lidstone) 계수

- 작은 데이터에서 확률 0 발생을 방지하기 위한 매개변수

- 0이면 스무딩을 하지 않음

 

binarize

- 입력 특징을 이진값으로 변환하기 위한 임계값

- None이면 입력이 이미 이진 벡터라고 가정

 

fit_prior

- 클래스 사전 확률(prior)을 학습할지 여부

- False : 균일한 사전 확률을 사용함

 

class_prior

- 클래스의 사전 확률

- 지정되면 데이터에 따라 조정되지 않음


Attributes

    class_log_prior_ : array, shape = [n_classes]
        Log probability of each class (smoothed).

    feature_log_prob_ : array, shape = [n_classes, n_features]
        Empirical log probability of features given a class, P(x_i|y).

    class_count_ : array, shape = [n_classes]
        Number of samples encountered for each class during fitting. This
        value is weighted by the sample weight when provided.

    feature_count_ : array, shape = [n_classes, n_features]
        Number of samples encountered for each (class, feature)
        during fitting. This value is weighted by the sample weight when
        provided.

 

class_log_prior_

- 각 클래스의 로그 사전 확률 (스무딩 적용)

 

feature_log_prob_

- 클래스 주어졌을 때 특징의 경험적 로그확률

 

class_count_

- 학습 시 각 클래스에 대해 관측된 샘플 수 (샘플 가중치 적용)

 

feature_count_

- 학습 시 각 (클래스, 특징) 조합에서 관측된 샘플 수 (샘플 가중치 적용)

반응형

'개발 > Python' 카테고리의 다른 글

데이터 변환  (0) 2025.10.25
등분산성 검정  (0) 2025.10.20
이상치 탐지 vs 특이치 탐지  (0) 2025.10.20
합성곱 신경망 (Feature Map)  (0) 2025.10.20
신경망 파라미터 개수  (0) 2025.10.20

댓글