나이브 베이즈(Naive Bayes) 분류기는 지도 학습의 한 종류로, 베이즈 정리(Bayes' theorem)에 기반한 분류 알고리즘입니다. 이 알고리즘은 텍스트 분류, 스팸 메일 분류 등 다양한 분야에서 널리 사용하고 있습니다. 따라서 이 글에서는 나이브 베이즈 분류기의 원리와 코드에 대해 자세히 알아보겠습니다.
베이지안 룰
나이브 베이지안 분류
- 사후 확률을 계산하여 더 높은 확률을 가지는 것을 정답으로 분류
scikit learn에서 제공하는 나이브 베이지안 종류
- 가우시안 나이브 베이즈 : GaussianNB()
- 연속적인 값에 사용
- 다항분포 나이브 베이즈 : MultimonialNB()
- 이산적인 값에 사용
- 하나의 특성이 여러 종류로 나뉘는 경우
- 베르누이 나이브 베이즈(이항분포) : BernoulliNB()
- 이산적인 값에 사용
- 모든 특성이 두 종류로만 나뉘는 경우
예제 코드
- 데이터 불러오기 및 데이터셋 분할하기(아이리스 데이터셋)
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
dataset = load_iris( )
y = df['target']
x = df.drop('target', axis=1)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.33, random_state=42)
x_train.shape, x_test.shape, y_train.shape, y_test.shape
- 가우시안 나이브 베이즈 코드
from sklearn.naive_bayes import GaussianNB
nb_clf = GaussianNB()
nb_clf.fit(x_train, y_train)
pred = nb_clf.predict(x_test)
print(f"accuracy score: {metrics.accuracy_score(y_test, pred):.3f}")
'인공지능&머신러닝' 카테고리의 다른 글
[머신러닝]서포트벡터머신(SVM,Support Vector Machine)원리 및 코드 예시 (0) | 2024.06.24 |
---|---|
[머신러닝]K-최근접 이웃(KNN모델)원리 및 코드 예시 (0) | 2024.06.24 |
[데이터 전처리]데이터 스케일링(Data Scaling): (0) | 2024.06.24 |
[머신러닝]결정트리(Decision Tree)원리 및 코드 예시 (0) | 2024.06.24 |
혼동행렬(Confusion matrix) / 정확도 / 정밀도 / 재현율 / F1-score (0) | 2024.06.10 |