Coding Is My Life

코딩은 인생

파이썬 머신러닝

[머신러닝][Classification 알고리즘 실습-Mushroom Classification]

산기대 컴공 2021. 2. 14. 00:01
728x90

Classfication소개

Classification 알고리즘이란 테이터를 학습하여 얻은 결과를 분류하여 나타내는 알고리즘이다.

오늘 소개할 Classification은 Logistic Regression이다 Logistic Regession이란 Training Data 특성과 분포를 나타내는 최적의 직선을 찾고(Linear Regression) 그 직선을 기준으로 위(1) 또는 아래(0)등으로 분류해주는 알고리즘이다.

Logistic Regression은 sigmoid function을 사용하고 sigmoid function은 쉽게 말해 x의 값에 어떤 값이 들어와도 0~1사이의 값으로 수렴하는 값을 가지는 함수이다.

 

Classfication 검증

검증 단계에서는 sklearn.metrics import accuracy_score 라이브러리를 사용하여 accuracy을 구하였다.

accuracy = 예측 결과가 동일한 데이터 건수/전체 예측 데이터 건수 이다.

 

데이터 수집

https://www.kaggle.com/uciml/mushroom-classification

 

Mushroom Classification

Safe to eat or deadly poison?

www.kaggle.com

파이썬 코드

import pandas as pd
data = pd.read_csv('/content/drive/MyDrive/classification 예제/mushrooms.csv')

일단 데이터를 불러와 주었다.

 

data.info()

혹시나 하는 데이터의 NAN값이 있나 확인하였다.

 

from sklearn.preprocessing import LabelEncoder
encoding = LabelEncoder()
for col in data.columns:
  data[col] = encoding.fit_transform(data[col])
data.head()

from sklearn.preprocessing import LabelEncoder

해당 라이브러리를 사용하여 문자로 되어있는 값들을 모두 숫자로 스케일링 해주었다.

 

target = data['class']
feature = data.drop('class',axis = 1)
target.unique()

target 데이터와 feature 데이터를 분리하고 target데이터가 0과1로 되어있는지 확인하였다.

 

from sklearn.metrics import accuracy_score
from sklearn.tree import DecisionTreeClassifier
from sklearn.linear_model import LogisticRegression
model = DecisionTreeClassifier()
model2 = LogisticRegression()
x_train,x_test,y_train,y_test = train_test_split(feature,target,test_size = 0.3,random_state = 0)
model.fit(x_train,y_train)
model2.fit(x_train,y_train)
pred = model.predict(x_test)
pred2 = model2.predict(x_test)
print(accuracy_score(y_test,pred))
print(accuracy_score(y_test,pred2))

DecisionTree 정확도: 1.0

LogisticRegression정확도: 0.9491386382280558

 

다음과 같은 정확도가 나왔다.

LogisticRegession 보다 DecisionTree의 정확도가 더 잘 나온것을 볼 수 있다.

728x90