목차
728x90
반응형
베이즈 정리 (Bayes' theorem)
- 사전확률과 사후확률 사이의 관계를 조건부 확률을 이용해서 계산하는 확률이론
나이브 베이즈 정리
- 베이즈 정리에 기반한 통계적 분류 기법
from sklearn.model_selection import train_test_split
from sklearn.navie_bayes import GaussianNB
import pandas as pd
import numpy as np
- sklearn.model_selection : scikit-learn 패키지 중 클래스를 나눌 때, 함수를 통해 train/test를 나눌 때, 모델 검증에 사용되는 서브 패키지
- train_test_split : 배열 또는 행렬을 임의의 train 및 test 하위 집합으로 분할하는 모듈
- sklearn.navie_bayes : scikit-learn 패키지 중 나이브 베이즈 기반 모델이 있는 섭 패키지
- Gaussian : 연속적인 값을 지닌 데이터를 처리할 때, 각 클래스의 연속적인 값들이 가우스 분포를 가정하는 나이브 베이즈 모듈 중 하나
tennis_data = pd.read_csv('playtennis.csv')
- 예제 데이터인 playtennis의 데이터가 저장되어 있는 csv파일을 load해 판다스의 데이터프레임 형식으로 변수 tennis_data에 저장
tennis_data.Outlook = tennis_data.Outlook.replace('Sunny', 0)
tennis_data.Outlook = tennis_data.Outlook.replace('Overcast', 1)
tennis_data.Outlook = tennis_data.Outlook.replace('Rain', 2)
tennis_data.Temperature = tennis_data.Temperature.replace('Hot', 3)
tennis_data.Temperature = tennis_data.Temperature.replace('Mild', 4)
tennis_data.Temperature = tennis_data.Temperature.replace('Cool', 5)
tennis_data.Humidity = tennis_data.Humidity.replace('High', 6)
tennis_data.Humidity = tennis_data.Humidity.replace('Normal',7)
tennis_data.Wind = tennis_data.Wind.replace('Weak', 8)
tennis_data.Wind = tennis_data.Wind.replace('Strong', 9)
tennis_data.PlayTennis = tennis_data.PlayTennis.replace('No', 10)
tennis_data.PlayTennis = tennis_data.PlayTennis.replace('Yes', 11)
tennis_data
- tennis_data의 각 컬럼(Outlook, Temperature, ...)의 값(Sunny, Overcast, ...)을 String타입에서 int타입으로 replace해 변수 tennis_data의 각 컬럼별 저장
-나이브 베이즈 모델에 train, test 데이터 값으로 사용하기 위한 전처리 과정
X = np.array(pd.DataFrame(tennis_data, columns = ['Outlook', 'Temperature', 'Humidity', 'Wind']))
y = np.array(pd.DataFrame(tennis_data, columns = ['PlayTennis']))
- 변수 tennis_data의 컬럼의 값들을 데이터플레임 형태로 추출하고 np.array를 이용해 추출한 데이터를 배열 형태로 변환한 후 변수 X와 y에 저장
X_train, X_test, y_train, y_test = train_test_split(X, y)
- X와 y에 대한 데이터를 train과 test로 구분해, 임의의 개수로 각각 변수에 저장
clf = GaussianNB()
clf = clf.fit(X_train, y_train)
- Gaussian 나이브베이즈 모듈을 변수 clf에 저장
- 선언된 변수 clf에 함수 fit()을 이용해 train 변수를 가우시안 나이브 베이즈로 모델을 생성하고 학습시킴
prediction = clf.predict(X_test)
- 예측함수 predict() : 학습데이터를 입력하여 예측값을 계산
728x90
반응형
'Python > Analysis' 카테고리의 다른 글
[Analysis] MLP - 다층 퍼셉트론 (0) | 2024.03.25 |
---|---|
[Analysis] PCA - 주성분 분석 (0) | 2024.03.18 |
[Analysis] Machine Learning 이란? (0) | 2023.12.27 |
[Analysis] scikit-learn 선형회귀분석 (0) | 2022.11.08 |
[Analysis] CSV파일 활용하기 (0) | 2022.10.12 |