나이브 베이즈 분류(Naive Bayes Classification)
텍스트 분류에 사용됨으로써 여러 범주 중 하나로 판단하는 문제에 대한 대중적인 방법
일반적인 원칙에 근거한 여러 알고리즘들을 이용하여 훈련
베이즈 정리(Bayes' Theorem)
새로운 사건의 확률을 계산하기 전에 이미 일어난 사건을 고려하는 것을 전제로 하는 베이즈 통계의 근간
조건부 확률 P(A|B)는 사건 B가 발생한 경우 A의 확률을 나타낸다.
weather_play.csv를 사용하여 실습
import pandas as pd
data = pd.read_csv('D:/Ai/weather_play.csv')
data
# mapping dictionary 만들기
outlook_dic = {'overcast':0, 'rainy':1, 'sunny':2}
temperature_dic = {'cool':0, 'hot':1, 'mild':2}
humidity_dic = {'high':0, 'normal':1}
windy_dic = {False:0, True:1}
# 딕셔너리를 활용해 데이터 매핑
data['outlook'] = data['outlook'].map(outlook_dic)
data['temperature'] = data['temperature'].map(temperature_dic)
data['humidity'] = data['humidity'].map(humidity_dic)
data['windy'] = data['windy'].map(windy_dic)
data
from sklearn.naive_bayes import MultinomialNB
model = MultinomialNB()
model.fit(data.iloc[:, :4].values, data['play'].values)
연속적인 데이터에 대한 나이브 베이지안 분류기
from sklearn.datasets import load_iris
iris = load_iris(as_frame=True)
df = iris.frame
df.head()
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(df.iloc[:, :4], df['target'], test_size=0.33)
#가우시안 모델 인스턴스화
from sklearn.naive_bayes import GaussianNB
model = GaussianNB()
model.fit(X_train, y_train)
pred = model.predict(X_test)
dispConfusionMatrix(y_test, pred)
print(classification_report(y_test, pred))
출처 및 참고
https://bkshin.tistory.com/entry/dd
https://hleecaster.com/bayes-theorem-concept/
https://gomguard.tistory.com/69
https://hleecaster.com/ml-naive-bayes-classifier-concept/
'Study > AI' 카테고리의 다른 글
[AI][ML]랜덤 포레스트(Random Forest) (0) | 2022.08.12 |
---|---|
[AI][ML]결정 트리(Decision Tree) (0) | 2022.08.11 |
[AI][ML]SVM(Support Vector Machine) (0) | 2022.08.10 |
[AI][ML]k-최근접 이웃 알고리즘(KNN, K-Nearest Neighbor) (0) | 2022.08.09 |
[AI][ML]Logistic Regression(로지스틱 회귀) (0) | 2022.07.31 |