[python] scikit-learn을 이용한 나이브 베이즈 분류

Scikit-learn은 파이썬 기반의 머신 러닝 라이브러리로, 다양한 알고리즘과 기능을 제공합니다. 이 중에서도 나이브 베이즈 분류 알고리즘을 사용하여 데이터를 분류해보도록 하겠습니다.

1. 필요한 라이브러리 설치하기

먼저, scikit-learn 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.

pip install scikit-learn

2. 데이터 준비하기

나이브 베이즈 분류를 위해서는 분류할 데이터가 필요합니다. 예시로, 아이리스 데이터셋을 사용해보도록 하겠습니다.

from sklearn import datasets

# 아이리스 데이터셋 로드
iris = datasets.load_iris()

# 독립 변수와 종속 변수를 각각 X와 y에 저장
X = iris.data
y = iris.target

3. 데이터 분할하기

전체 데이터를 훈련 데이터와 테스트 데이터로 분할해줍니다. 이를 통해 모델의 일반화 능력을 평가할 수 있습니다.

from sklearn.model_selection import train_test_split

# 훈련 데이터와 테스트 데이터로 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

4. 모델 학습하기

나이브 베이즈 분류 모델을 생성하고, 훈련 데이터로 학습을 진행합니다.

from sklearn.naive_bayes import GaussianNB

# 나이브 베이즈 분류 모델 생성
model = GaussianNB()

# 모델 학습
model.fit(X_train, y_train)

5. 예측하기

모델이 학습된 후, 테스트 데이터를 이용하여 예측을 수행할 수 있습니다.

# 테스트 데이터로 예측 수행
y_pred = model.predict(X_test)

6. 결과 평가하기

예측 결과와 실제 결과를 비교하여 모델의 성능을 평가할 수 있습니다.

from sklearn.metrics import accuracy_score

# 정확도 평가
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

참고 자료