소개
이 실습에서는 Python 의 scikit-learn 라이브러리에서 나이브 베이즈 분류기를 사용하는 예제를 살펴볼 것입니다. 나이브 베이즈 분류기는 분류 작업에 일반적으로 사용되는 지도 학습 알고리즘 집합입니다. 이 분류기는 클래스 변수의 값을 고려했을 때 모든 특징 쌍 사이의 조건부 독립성을 가정하고 베이즈 정리를 적용하는 데 기반합니다.
이 예제에서는 scikit-learn 의 가우시안 나이브 베이즈 분류기를 사용하여 아이리스 데이터셋을 분류할 것입니다. 아이리스 데이터셋은 머신 러닝 분야에서 널리 사용되는 데이터셋입니다. 이 목표는 꽃잎과 꽃받침의 크기 정보를 바탕으로 아이리스 꽃의 종을 예측하는 것입니다.
VM 팁
VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 Jupyter Notebook에 접근할 수 있습니다.
때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사를 자동화할 수 없습니다.
학습 중 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.
라이브러리 가져오기 및 데이터셋 로드
필요한 라이브러리를 가져오고 아이리스 데이터셋을 로드하는 것으로 시작하겠습니다. sklearn.datasets 모듈의 load_iris 함수를 사용하여 데이터셋을 로드합니다.
from sklearn.datasets import load_iris
## 아이리스 데이터셋 로드
iris = load_iris()
X = iris.data ## 특징
y = iris.target ## 목표 변수
print("샘플 수:", X.shape[0])
print("특징 수:", X.shape[1])
print("클래스 수:", len(set(y)))
데이터셋을 학습 및 테스트 세트로 분할
다음으로 sklearn.model_selection 모듈의 train_test_split 함수를 사용하여 데이터셋을 학습 및 테스트 세트로 분할합니다. 학습 세트는 나이브 베이즈 분류기를 학습하는 데 사용되고, 테스트 세트는 분류기의 성능을 평가하는 데 사용됩니다.
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)
가우시안 나이브 베이즈 분류기 학습 및 평가
이제 학습 세트에서 가우시안 나이브 베이즈 분류기를 학습하고 테스트 세트에서 성능을 평가합니다. sklearn.naive_bayes 모듈의 GaussianNB 클래스를 사용합니다.
from sklearn.naive_bayes import GaussianNB
## 가우시안 나이브 베이즈 분류기 생성
gnb = GaussianNB()
## 분류기 학습
gnb.fit(X_train, y_train)
## 테스트 세트에 대한 목표 변수 예측
y_pred = gnb.predict(X_test)
## 분류기의 정확도 계산
accuracy = (y_pred == y_test).sum() / len(y_test)
print("정확도:", accuracy)
결과 해석
얻어진 정확도를 바탕으로 아이리스 데이터셋에 대한 가우시안 나이브 베이즈 분류기의 성능을 해석할 수 있습니다. 정확도는 테스트 세트에서 올바르게 예측된 목표 변수 값의 비율을 나타냅니다. 이 경우 정확도는 올바르게 분류된 아이리스 꽃 종의 비율을 나타냅니다.
요약
이 실습에서는 scikit-learn 의 가우시안 나이브 베이즈 분류기를 사용하는 예제를 살펴보았습니다. 아이리스 데이터셋을 불러와 학습 세트와 테스트 세트로 분할하고, 학습 세트에서 분류기를 학습한 후 테스트 세트에서 성능을 평가했습니다. 얻어진 정확도는 분류기가 아이리스 꽃 종을 예측하는 데 얼마나 잘 수행되었는지 보여줍니다. 나이브 베이즈 분류기는 간단하지만 효과적인 분류 알고리즘으로, 다양한 실제 응용 분야에서 일반적으로 사용됩니다.