나이브 베이즈 분류기를 사용한 데이터셋 분석
1. 나이브 베이즈 소개.
Naive Bayes 분류기는 기계 학습의 분류 알고리즘이며 감독 학습에 포함됩니다. 이 알고리즘은 Thomas Bayes가 만든 Bayes Theorem을 기반으로 합니다. 따라서 나이브 베이즈 분류기를 사용하기 전에 먼저 베이즈 정리를 이해해야 합니다.
베이즈 정리의 핵심은 조건부 확률입니다. 조건부 확률은 어떤 일이 이미 발생했을 때 어떤 일이 일어날 확률입니다. 조건부 확률을 사용하여 이전 이벤트에 대한 지식이 주어졌을 때 이벤트가 발생할 확률을 알아낼 수 있습니다.
베이즈 정리의 기초를 사용하여 나이브 베이즈 분류기 공식은 다음과 같이 작성할 수 있습니다.
순진한 베이즈 분류기의 계산에서 한계 확률은 항상 동일하게 유지되므로 한계 확률 계산을 무시할 수 있습니다. Naive Bayes 분류기에서 우리는 가장 큰 사후 확률 값을 기반으로 데이터 포인트의 클래스를 결정합니다.
2. Scikit-Learn을 사용한 Naive Bayes.
이제 Naive Bayes 분류기 알고리즘을 수동으로 계산하는 방법을 알았으므로 Scikit-learn을 쉽게 사용할 수 있습니다. Scikit-learn은 기계 학습 구현에 사용되는 Python 라이브러리 중 하나입니다. 저는 여기에서 Gaussian Naive Bayes Classifier를 사용하고 있으며 제가 사용하는 데이터 세트는 글래스 분류이며 이 문서의 끝에서 다운로드할 수 있습니다.
Naive Bayes 분류기를 사용하여 분류 문제를 해결하는 단계는 다음과 같습니다.
1. 이 경우 작업에 사용할 여러 Python 라이브러리를 로드합니다.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
import warnings
warnings.filterwarnings('ignore')
2. 이 사례 작업에 사용할 데이터 세트를 로드합니다. 사용된 데이터 세트는 유리 데이터 세트입니다.
glass=pd.read_csv("glass.csv")
3. 데이터의 일반 정보를 살펴보고 일반적으로 데이터의 특성을 파악합니다.
#Top five of our data
glass.head()
:
#Last five of our data
glass.tail()
:
#Viewing the number of rows (214) and number of columns /
features (10)
glass.shape
4. 데이터에서 누락된 값이 있으면 처리하고, 없으면 다음 단계로 진행할 수 있습니다.
#Data is clean and can continue to the Explorary Data
Analysis stage
glass.isnull().sum()
5. 데이터의 특성에 대해 자세히 알아보기 위한 탐색적 데이터 분석:
#Univariate analysis Type (Target features).
sns.countplot(df['Type'], color='red')
6. Scikit-Learn의 Gaussian Naive Bayes로 데이터 모델링:
#Create a Naive Bayes object
nb = GaussianNB()
#Create variable x and y.
x = glass.drop(columns=['Type'])
y = glass['Type']
#Split data into training and testing data
x_train, x_test, y_train, y_test = train_test_split(x, y,
test_size=0.2, random_state=4)
#Training the model
nb.fit(x_train, y_train)
#Predict testing set
y_pred = nb.predict(x_test)
#Check performance of model
print(accuracy_score(y_test, y_pred))
정확도 점수에서 값이 48%임을 알 수 있으며 제 생각에는 여전히 다시 개선해야 합니다.
내 분석에 따르면 Naive Bayes 모델의 정확도 값이 이렇게 낮은 이유는 불균형한 데이터 때문입니다. 따라서 모델의 정확도를 개선하기 위해 사용할 방법 중 하나는 데이터 균형 조정입니다.
데이터세트 링크: https://www.kaggle.com/uciml/glass/download
Reference
이 문제에 관하여(나이브 베이즈 분류기를 사용한 데이터셋 분석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codinghappinessweb/analysing-dataset-using-naive-bayes-classifier-3d7o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)