나이브 베이즈(Naive Bayes) 알고리즘은 기계 학습 분야에서 널리 사용되는 분류 알고리즘 중 하나입니다. 이 알고리즘은 데이터를 분류하기 위해 확률적 접근 방식을 사용하는데, 해당 데이터의 특성들이 독립적이라고 가정합니다.
scikit-learn은 파이썬 기반의 머신 러닝 라이브러리로, 다양한 알고리즘을 지원하며 간단하게 사용할 수 있습니다. scikit-learn을 사용하여 나이브 베이즈 알고리즘을 구현하는 방법을 알아보겠습니다.
1. 필요한 라이브러리 import하기
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
위 코드는 필요한 scikit-learn의 라이브러리들을 import하는 코드입니다. datasets
는 scikit-learn에서 제공하는 데이터셋을 불러오기 위해 사용되고, train_test_split
은 데이터를 학습용과 테스트용으로 나누는데 사용됩니다. GaussianNB
는 실수 값을 가진 데이터에 대해 나이브 베이즈 알고리즘을 사용하기 위한 클래스입니다. accuracy_score
는 분류 결과의 정확도를 평가하기 위한 함수입니다.
2. 데이터셋 불러오기와 전처리
# 붓꽃 데이터셋 불러오기
iris = datasets.load_iris()
# 특성과 타겟 변수 나누기
X = iris.data
y = iris.target
# 학습용과 테스트용 데이터로 나누기
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
위 코드는 scikit-learn에서 제공하는 붓꽃(iris) 데이터셋을 불러오고, 특성과 타겟 변수로 나누는 코드입니다. X
는 특성 데이터이고, y
는 타겟 변수(붓꽃의 종류)입니다. train_test_split
함수를 사용하여 데이터를 학습용과 테스트용으로 나눌 수 있습니다.
3. 모델 학습과 예측
# 나이브 베이즈 모델 학습
model = GaussianNB()
model.fit(X_train, y_train)
# 예측 결과 계산
y_pred = model.predict(X_test)
# 정확도 평가
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
위 코드는 나이브 베이즈 모델을 학습하고, 테스트 데이터에 대해 예측 결과를 계산한 뒤, 정확도를 평가하는 코드입니다. GaussianNB
클래스를 사용하여 모델을 초기화하고, fit
함수를 호출하여 학습을 진행합니다. 그리고 predict
함수를 사용하여 예측 결과를 계산합니다. 마지막으로 accuracy_score
함수를 사용하여 정확도를 평가하고 출력합니다.
이렇게 scikit-learn을 사용하여 나이브 베이즈 알고리즘을 구현할 수 있습니다. scikit-learn은 다양한 머신 러닝 알고리즘과 도구들을 제공하므로, 데이터 분석과 분류 작업을 더욱 쉽고 효과적으로 수행할 수 있습니다.