태지쌤

로봇 & 코딩교육 No.1 크리에이터

Data Science

[AI와빅데이터경영입문] 나이브베이즈

태지쌤 2023. 3. 9. 20:30
반응형

나이브_베이즈.ipynb
0.01MB

from sklearn import datasets

irisData = datasets.load_iris()

x_total = irisData.data
y_total = irisData.target

# 데이터 분할

from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x_total, y_total, test_size=0.50, random_state=10)

# 모형 학습

from sklearn.naive_bayes import GaussianNB

gNB = GaussianNB()
gNB.fit(x_train, y_train)

# 학습 결과 및 성능 평가

predictedClass = gNB.predict(x_test)

print('훈련 집합의 예측 정확도', gNB.score(x_train, y_train))
print('테스트 집합의 예측 정확도', (predictedClass == y_test).mean())

해당 코드는 Iris 데이터를 이용하여 나이브 베이즈 분류기를 학습하고, 예측 정확도를 출력하는 코드입니다.

  • 라이브러리 import:
    • datasets 모듈로부터 load_iris() 함수를 import합니다. 이 함수를 이용하여 Iris 데이터를 불러올 수 있습니다.
    • train_test_split 함수는 학습용 데이터와 검증용 데이터를 분리하기 위해 사용됩니다.
    • GaussianNB는 sklearn의 나이브 베이즈 모델 중 하나입니다.
  • Iris 데이터 불러오기:
    • datasets.load_iris()를 이용하여 Iris 데이터를 불러옵니다.
    • irisData.data는 Iris 데이터의 feature 정보를 담고 있는 numpy 배열입니다.
    • irisData.target은 Iris 데이터의 class 정보를 담고 있는 numpy 배열입니다.
  • 데이터 분할:
    • train_test_split 함수를 이용하여 전체 데이터를 학습용 데이터와 검증용 데이터로 분할합니다.
    • test_size 인자를 이용하여 학습용 데이터와 검증용 데이터의 비율을 지정할 수 있습니다.
    • random_state 인자를 이용하여 데이터를 무작위로 분할하는데 사용되는 시드값을 지정할 수 있습니다.
  • 모형 학습:
    • GaussianNB 모델을 이용하여 학습을 수행합니다.
    • fit 함수를 이용하여 학습용 데이터에 대해 모델을 학습시킵니다.
  • 예측 결과 및 성능 평가:
    • 검증용 데이터에 대한 예측 결과를 predict 함수를 이용하여 얻습니다.
    • score 함수를 이용하여 학습용 데이터에 대한 예측 정확도를 계산합니다.
    • mean 함수를 이용하여 검증용 데이터에 대한 예측 정확도를 계산합니다.

나이브 베이즈(Naive Bayes)는 지도학습(Supervised Learning) 알고리즘 중 하나로, 분류(Classification) 작업에 많이 사용됩니다.

나이브 베이즈 알고리즘은 베이즈(Bayes) 이론을 기반으로 합니다. 베이즈 이론은 어떤 사건이 발생했을 때, 그 사건이 발생하기 이전에 알고 있던 조건들이 주어졌을 때, 해당 사건이 발생할 확률을 계산하는 방법을 제공합니다.

나이브 베이즈 알고리즘에서는 입력 데이터의 각 특성(feature)이 독립적이라고 가정합니다. 이 가정을 "나이브(naive)"하다고 표현합니다. 이렇게 가정하면 각 특성(feature)의 확률을 각각 독립적으로 계산할 수 있게 되어, 계산이 훨씬 간단해집니다.

예를 들어, 이메일이 스팸 메일인지 아닌지를 분류하는 문제를 생각해봅시다. 이때, 이메일의 본문 내용과 제목, 발신자 등의 특성을 사용할 수 있습니다. 이때, 각 특성이 해당 이메일이 스팸 메일일 확률에 영향을 미치는 정도를 계산하고, 이를 이용하여 해당 이메일이 스팸 메일일 확률을 계산합니다. 가장 높은 확률을 가지는 분류로 이메일을 분류하게 됩니다.

나이브 베이즈 알고리즘은 비교적 간단하면서도 효과적인 분류 알고리즘입니다. 하지만, 입력 데이터의 특성이 독립적이지 않을 경우, 성능이 저하될 수 있습니다.

 

 
Regenerate response

 

 

반응형