728x90
반응형
import tensorflow as tf
from tensorflow.keras import layers
import pandas as pd
import numpy as np
from tensorflow.keras import datasets, layers, models
from tensorflow.keras.utils import to_categorical
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
df = pd.read_csv('iris_training.csv') # csv 파일 읽기
X = df.iloc[:,0:4].values # 학습데이터
y = df.iloc[:,4].values # target
encoder = LabelEncoder()
y1 = encoder.fit_transform(y)
Y = pd.get_dummies(y1).values
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=0) # 학습/테스트 데이터 분리
model = tf.keras.Sequential([ # 모델 만들기
tf.keras.layers.Dense(10, activation='relu'),
tf.keras.layers.Dense(10, activation='relu'),
tf.keras.layers.Dense(3, activation='softmax')
])
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, batch_size=50, epochs=200) # 학습
loss, accuracy = model.evaluate(X_test, y_test, verbose=0) # 합습loss, accuracy 확인
print('Test loss:', loss)
print('Test accuracy:', accuracy)
y_pred = model.predict(X_test) # 예측
actual = np.argmax(y_test,axis=1)
predicted = np.argmax(y_pred,axis=1)
print(f"Actual: {actual}")
print(f"Predicted: {predicted}")
결과
Epoch 1/200
2/2 [==============================] - 1s 13ms/step - loss: 2.0949 - accuracy: 0.3474
Epoch 2/200
2/2 [==============================] - 0s 12ms/step - loss: 1.9264 - accuracy: 0.3474
Epoch 3/200
2/2 [==============================] - 0s 11ms/step - loss: 1.8115 - accuracy: 0.3474
Epoch 4/200
2/2 [==============================] - 0s 9ms/step - loss: 1.7207 - accuracy: 0.3474
Epoch 5/200
2/2 [==============================] - 0s 8ms/step - loss: 1.6461 - accuracy: 0.3474
Epoch 6/200
2/2 [==============================] - 0s 10ms/step - loss: 1.5834 - accuracy: 0.3474
...
Epoch 197/200
2/2 [==============================] - 0s 8ms/step - loss: 0.1742 - accuracy: 0.9789
Epoch 198/200
2/2 [==============================] - 0s 9ms/step - loss: 0.1696 - accuracy: 0.9789
Epoch 199/200
2/2 [==============================] - 0s 7ms/step - loss: 0.1698 - accuracy: 0.9789
Epoch 200/200
2/2 [==============================] - 0s 7ms/step - loss: 0.1696 - accuracy: 0.9789
Test loss: 0.17050610482692719
Test accuracy: 0.9583333134651184
Actual: [2 0 0 0 1 2 1 1 0 2 2 1 0 2 1 0 1 0 0 1 1 1 2 0]
Predicted: [2 0 0 0 2 2 1 1 0 2 2 1 0 2 1 0 1 0 0 1 1 1 2 0]
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 숫자 분할. 줄어들거나 줄었다 늘어나는(비균등 분할) (0) | 2022.11.29 |
---|---|
[파이썬] 문제 : 5명의 학생 성적 평균 함수 (0) | 2022.11.29 |
[파이썬] 문제 : 리스트 삭제 함수(destination, 경복궁 등) (0) | 2022.11.29 |
[파이썬] 문제 : 함수의 인수로 받고 리턴 하기 (0) | 2022.11.29 |
[파이썬] 문제 : 함수로 리스트에 추가하기 (0) | 2022.11.29 |
댓글