2. winequality-red 데이터의 와인 등급을 분류해보자.¶
In [1]:
import pandas as pd
import numpy as np
redwine = pd.read_csv('winequality-red.csv', delimiter=';')
In [2]:
redwine.head(5)
Out[2]:
In [3]:
redwine.shape
Out[3]:
- 데이터셋에서 독립변수와 종속변수 분리. 종속변수는 quality 칼럼
In [5]:
redwine_X = redwine.iloc[:, :-1] # 종속변수인 마지막 칼럼만 빼고, 모든 행 데이터를 redwine_X에 할당
redwine_y = redwine.iloc[:, -1] # 종속변수인 quality 칼럼의 모든 행 데이터를 redwine_y에 할당
- 학습용 데이터와 검증용 데이터를 7:3 비율로 분할
In [6]:
from sklearn.model_selection import train_test_split
In [7]:
train_X, test_X, train_y, test_y = train_test_split(redwine_X, redwine_y, test_size = 0.3, random_state=92)
In [8]:
print(train_X.shape, test_X.shape)
- Scikit-learn 패키지의 MLPClassifier 함수를 사용하여 인공신경망을 이용한 분류모형 만들기
In [9]:
from sklearn.neural_network import MLPClassifier
In [12]:
# hidden_layer_sizes는 은닉층 레이어의 개수와 각 레이어에 들어 있는 퍼셉트론 개수. (50, 50, 30)은 은닉층 3개, 각 층에 퍼셉트론 50, 50, 30개
mlp = MLPClassifier(hidden_layer_sizes = (50, 50, 30))
In [13]:
mlp.fit(train_X, train_y)
Out[13]:
In [14]:
print("Training score: %s"% mlp.score(train_X, train_y))
- 검증용 데이터셋의 입력 데이터를 이용해 예측
In [15]:
pred = mlp.predict(test_X)
In [16]:
pred
Out[16]:
- crosstab() 함수를 이용해 실제 값과 예측한 값의 교차분류표 작성
In [17]:
pd.crosstab(test_y, pred, rownames=['True'], colnames=['Predicted'], margins=True)
Out[17]:
- 혼동행렬(confusion matrix)를 이용해 정확도(accuracy)를 계산
In [18]:
from sklearn.metrics import accuracy_score
In [19]:
accuracy_score(test_y, pred)
Out[19]:
0 Comments
Post a Comment