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
파이썬 코드
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의 정확도가 더 잘 나온것을 볼 수 있다.
'파이썬 머신러닝' 카테고리의 다른 글
[머신러닝][kaggle 실습- 보험 비용 예측하기] (2) | 2021.02.23 |
---|---|
[머신러닝][Deep learning을 이용한 XOR문제해결] (0) | 2021.02.14 |
[머신러닝][Linear Regression알고리즘 파이썬으로 구현] (1) | 2021.02.12 |
[머신러닝][코로나 확진자 예측하기] (1) | 2021.02.09 |
Linear Regression 을 이용한 주식 가격 예측 프로그램 (0) | 2021.01.29 |