-
Naive Bayes Classifier공부/A.I 2021. 5. 30. 17:50
- 나이브 베이즈 분류기
Logistic Regression이나 LinearSVC 같은 선형분류기보다 훈련 속도가 빠른편이다.
scikit-learn에서는 GaussianNB, BernoulliNB, MultinomialNB 세 가지를 제공한다.
GaussianNB 연속적인 어떤 데이터에도 적용가능 BernoulliNB 이진 데이터(0, 1) MultinomialNB 카운트 데이터(정수 카운트), 문장에 나타난 단어의 횟수 등 BernoulliNB 분류기는 각 클래스의 특성 중 0이 아닌 것이 몇개인지 센다.
클래스별로 0이 아닌 원소를 세는 과정 다른 두 나이브 베이즈 모델은 계산하는 통계 데이터 종류가 조금 다르다.
MultinomialNB는 클래스별로 특성의 평균을 계산하고,
GaussianNB는 클래스별로 각 특성의 표준편차와 평균을 저장한다.
모델이 예측할 때, 클래스의 통계 값과 비교하여 가장 잘 맞는 클래스를 예측값으로 한다.
MultinomialNB와 BernoulliNB의 예측공식은 선형 모델과 형태가 같지만, 나이브 베이즈 모델의 coef_는 기울기 w가 아니라 선형모델과는 의미가 다르다.
MultinomialNB와 BernoulliNB의 coef_는 특성 카운트 수를 로그 변환한 형태이다.
intercept_는 클래스 카운트 수를 로그 변환한 것이다.
예측할 때 선형함수처럼 데이터포인트에 coef_를 곱하고 intercept_를 더하여 클래스에 속할 확률을 계산한다.
GaussianNB는 주로 높은 차원을 가진 데이터에 사용한다. 다른 두 나이브 베이즈 모델은 텍스트와 같은 데이터를 카운트하는데 사용한다. MultinomialNB와 BernoulliNB는 alpha매개변수 하나를 가진다. alpha가 주어지면, 알고리즘이 모든 특성에 양의 값을 가진 가상의 데이터 포인트를 alpha개수만큼 추가한다. 이는 통계 데이터를 원만하게 만들어준다.
즉, alpha가 크면 더 완만해지고, 모델의 복잡도는 낮아진다.
'공부 > A.I' 카테고리의 다른 글
graphviz ExecutableNotFound, PATH오류 (0) 2021.05.30 결정 트리 (0) 2021.05.30 [Linear model]다중 클래스 분류 (0) 2021.05.16 [Linear model for classification]이진 분류 (0) 2021.05.15 [Linear model]라소 회귀 (0) 2021.05.15