본문 바로가기
데이터분석/데이터분석

나이브 베이즈

by 이규승 2022. 5. 16.
728x90
반응형

머신러닝 알고리즘 중에서 분류 알고리즘으로 많이 사용되는 알고리즘.

 

*조건부 확률 *
P(B|A) : 사건 A에 대해서,사건 A가 발생했을 때 사건 B가 발생할 확률. “사건 A에 대한 사건 B의 조건부 확률”
이라 한다. 
- 사전확률 : 특정 사건이 일어나기 전의 확률로 베이즈 추론에서 관측자가 관측을 하기 전에 가지고 있는 확률분포를
말한다.
- 사후확률 : 확률변수 관측에 대한 조건부 확률로, 어떤 사건이 발생하였고, 이 사건이 나온 이유가 무엇인지 P(B|A)란
식으로 나타낸 것이다. (B는관측한 사건. A는 B가 나올 수 있게 한 과거의 사실)
- 베이즈 정리 : 두 확률변수의 사전확률과 사후확률 사이의 관계를 나타내는 정리다. 베이즈 정리는 사전확률로부터 사후 확률을 구할 수 있는 개념이다.

나이브 베이즈 이론 참고 사이트:

https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-1%EB%82%98%EC%9D%B4%EB%B8%8C-%EB%B2%A0%EC%9D%B4%EC%A6%88-%EB%B6%84%EB%A5%98-Naive-Bayes-Classification

 

머신러닝 - 1. 나이브 베이즈 분류 (Naive Bayes Classification)

나이브 베이즈는 스팸 메일 필터, 텍스트 분류, 감정 분석, 추천 시스템 등에 광범위하게 활용되는 분류 기법입니다. 나이브 베이즈 분류에 대해서 배우기 위해서는 베이즈 정리를 먼저 알아야

bkshin.tistory.com

나이브 베이즈 모델 활용

# 나이브베이즈 모델 : 베이지 정리를 이용
from sklearn.naive_bayes import GaussianNB
import numpy as np
from sklearn import metrics
from sklearn.preprocessing import OneHotEncoder

x = np.array([1,2,3,4,5])
x = x[:,np.newaxis] # 차원증가
print(x)
y = np.array([1,3,5,7,9])

model = GaussianNB().fit(x, y)
print(model)
pred = model.predict(x)
print(pred)
print('acc:',metrics.accuracy_score(y, pred))

# 새로운 값으로 분류
new_x = np.array([[0.5],[2],[7],[12],[0.1]])
new_pred = model.predict(new_x)
print('new_pred:',new_pred)
print('acc:',metrics.accuracy_score(y, new_pred))

원핫인코딩 사용 한 후 모델 적용

# OneHotEncoder 사용
x = '1,2,3,4,5'
x = x.split(',')
x = np.array(x)
x = x[:, np.newaxis]
one_hot = OneHotEncoder(categories = 'auto')
x2 = one_hot.fit_transform(x).toarray()
print(x2)
y = np.array([1,3,5,7,9])

model2 = GaussianNB().fit(x2, y)
print(model2)
pred2 = model2.predict(x)
print(pred2)
print('acc:',metrics.accuracy_score(y, pred2))

 

728x90

'데이터분석 > 데이터분석' 카테고리의 다른 글

인공신경망 (ANN)  (0) 2022.05.16
K-NN (K -Nearest Neighbor)  (0) 2022.05.16
주성분 분석(PCA)  (0) 2022.05.14
서포터 벡터 머신 (SVM)  (0) 2022.05.14
XGboost  (0) 2022.05.12