Keras

iris 품종 예측하기

이부일 2018. 1. 9. 18:11

import pandas as pd

import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.preprocessing import LabelEncoder
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense



# 데이터 불러오기
iris = pd.read_csv("d:/MachineLearning/dataset/iris.csv", names = ["SL", "SW", "PL", "PW", "Species"])



# 데이터 일부 보기
iris.head()

자동 대체 텍스트를 사용할 수 없습니다.


# 데이터 구조 보기
iris.info()

이미지: 텍스트


# 품종별 히스토그램/산점도 작성
sns.pairplot(iris, hue="Species")
plt.show()

자동 대체 텍스트를 사용할 수 없습니다.


# 데이터프레임을 배열로 변경하기
iris2 = iris.values



# 데이터셋 만들기
X = iris2[:, 0:4].astype(float)
Y = iris2[:, 4]



# 문자 데이터를 숫자 데이터로 변경하기
e = LabelEncoder()
e.fit(Y)
Y = e.transform(Y)

이미지: 텍스트


# One-hot encoding
Y = np_utils.to_categorical(Y)



# 모델 설정하기
model = Sequential()
model.add(Dense(16, input_dim=4, activation="relu"))
model.add(Dense(3, activation="softmax"))



# 모델 컴파일하기
model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accuracy"])



# 모델 실행하기
model.fit(X, Y, epochs=50, batch_size=1)



# 모델 평가하기
print("Accuracy : %.4f" % (model.evaluate(X, Y)[1]))

iris 품종 예측하기.ipynb



[출처] 모두의 딥러닝, 조태호 지음, 길벗, p146~154