2022.03.18 금
선형모델과 유사
LinearSVC와 비교
종류
BernoulliNB
각 클래스의 특성 중 0이 아닌 것이 몇 개인지 셈
# 이진 특성을 4개 가진 데이터포인트
X = np.array([[0, 1, 0, 1],
[1, 0, 1, 1],
[0, 0, 0, 1],
[1, 0, 1, 0]])
# 클래스
y = np.array([0, 1, 0, 1])
counts = {}
for label in np.unique(y):
# 각 클래스에 대해 반복
# 특성마다 1이 나타난 횟수 세기 (0번 특성, 1번 특성, 2번 특성, 4번 특성)
counts[label] = X[y==label].sum(axis=0)
print("특성 카운트:\\n", counts)
특성 카운트: {0: array([0, 1, 0, 2]), 1: array([2, 0, 2, 1])}
MultinomialNB
GaussianNB
coef_ 기울기 w가 아님 특성 카운트 수를 로그 변환한 형태
intercept_ b가 아님 클래스 카운트 수를 로그 변환한 것
⇒ BernoulliNB, MultinomialNB의 예측 공식 $w[0]x[0] + w[1] x[1] + ... + w[p]*x[p] + b$
매개변수
장단점
선형 모델의 장단점과 비슷
선형 모델로 학습 시간 너무 오래 걸릴 때 나이브 베이즈 모델 시도 good