13장 모델의 성능 검증하기¶
데이터의 확인과 예측 실행¶
In [2]:
Copied!
import pandas as pd
# 데이터 입력
df = pd.read_csv('./data/sonar3.csv', header=None)
# 첫 5줄을 봅니다.
df.head()
import pandas as pd
# 데이터 입력
df = pd.read_csv('./data/sonar3.csv', header=None)
# 첫 5줄을 봅니다.
df.head()
Out[2]:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0.0200 | 0.0371 | 0.0428 | 0.0207 | 0.0954 | 0.0986 | 0.1539 | 0.1601 | 0.3109 | 0.2111 | ... | 0.0027 | 0.0065 | 0.0159 | 0.0072 | 0.0167 | 0.0180 | 0.0084 | 0.0090 | 0.0032 | 0 |
| 1 | 0.0453 | 0.0523 | 0.0843 | 0.0689 | 0.1183 | 0.2583 | 0.2156 | 0.3481 | 0.3337 | 0.2872 | ... | 0.0084 | 0.0089 | 0.0048 | 0.0094 | 0.0191 | 0.0140 | 0.0049 | 0.0052 | 0.0044 | 0 |
| 2 | 0.0262 | 0.0582 | 0.1099 | 0.1083 | 0.0974 | 0.2280 | 0.2431 | 0.3771 | 0.5598 | 0.6194 | ... | 0.0232 | 0.0166 | 0.0095 | 0.0180 | 0.0244 | 0.0316 | 0.0164 | 0.0095 | 0.0078 | 0 |
| 3 | 0.0100 | 0.0171 | 0.0623 | 0.0205 | 0.0205 | 0.0368 | 0.1098 | 0.1276 | 0.0598 | 0.1264 | ... | 0.0121 | 0.0036 | 0.0150 | 0.0085 | 0.0073 | 0.0050 | 0.0044 | 0.0040 | 0.0117 | 0 |
| 4 | 0.0762 | 0.0666 | 0.0481 | 0.0394 | 0.0590 | 0.0649 | 0.1209 | 0.2467 | 0.3564 | 0.4459 | ... | 0.0031 | 0.0054 | 0.0105 | 0.0110 | 0.0015 | 0.0072 | 0.0048 | 0.0107 | 0.0094 | 0 |
5 rows × 61 columns
In [3]:
Copied!
# 일반 암석(0)과 광석(1)이 몇 개 있는지 확인합니다.
df[60].value_counts()
# 일반 암석(0)과 광석(1)이 몇 개 있는지 확인합니다.
df[60].value_counts()
Out[3]:
1 111 0 97 Name: 60, dtype: int64
In [4]:
Copied!
# 음파 관련 속성을 X로, 광물의 종류를 y로 저장합니다.
X = df.iloc[:,0:60]
y = df.iloc[:,60]
# 음파 관련 속성을 X로, 광물의 종류를 y로 저장합니다.
X = df.iloc[:,0:60]
y = df.iloc[:,60]
In [5]:
Copied!
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# 모델을 설정합니다.
model = Sequential()
model.add(Dense(24, input_dim=60, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 모델을 컴파일합니다.
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 모델을 실행합니다.
history=model.fit(X, y, epochs=200, batch_size=10)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# 모델을 설정합니다.
model = Sequential()
model.add(Dense(24, input_dim=60, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 모델을 컴파일합니다.
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 모델을 실행합니다.
history=model.fit(X, y, epochs=200, batch_size=10)
Epoch 1/200 21/21 [==============================] - 4s 4ms/step - loss: 0.6951 - accuracy: 0.5000 Epoch 2/200 21/21 [==============================] - 0s 3ms/step - loss: 0.6881 - accuracy: 0.5673 Epoch 3/200 21/21 [==============================] - 0s 3ms/step - loss: 0.6827 - accuracy: 0.6058 Epoch 4/200 21/21 [==============================] - 0s 3ms/step - loss: 0.6752 - accuracy: 0.6683 Epoch 5/200 21/21 [==============================] - 0s 2ms/step - loss: 0.6693 - accuracy: 0.6394 Epoch 6/200 21/21 [==============================] - 0s 2ms/step - loss: 0.6616 - accuracy: 0.7308 Epoch 7/200 21/21 [==============================] - 0s 2ms/step - loss: 0.6538 - accuracy: 0.7163 Epoch 8/200 21/21 [==============================] - 0s 2ms/step - loss: 0.6469 - accuracy: 0.6923 Epoch 9/200 21/21 [==============================] - 0s 2ms/step - loss: 0.6354 - accuracy: 0.6971 Epoch 10/200 21/21 [==============================] - 0s 2ms/step - loss: 0.6229 - accuracy: 0.7500 Epoch 11/200 21/21 [==============================] - 0s 2ms/step - loss: 0.6098 - accuracy: 0.7356 Epoch 12/200 21/21 [==============================] - 0s 2ms/step - loss: 0.5958 - accuracy: 0.7452 Epoch 13/200 21/21 [==============================] - 0s 2ms/step - loss: 0.5778 - accuracy: 0.7644 Epoch 14/200 21/21 [==============================] - 0s 2ms/step - loss: 0.5578 - accuracy: 0.7500 Epoch 15/200 21/21 [==============================] - 0s 2ms/step - loss: 0.5381 - accuracy: 0.7644 Epoch 16/200 21/21 [==============================] - 0s 2ms/step - loss: 0.5126 - accuracy: 0.8029 Epoch 17/200 21/21 [==============================] - 0s 2ms/step - loss: 0.4944 - accuracy: 0.7981 Epoch 18/200 21/21 [==============================] - 0s 2ms/step - loss: 0.4779 - accuracy: 0.7981 Epoch 19/200 21/21 [==============================] - 0s 2ms/step - loss: 0.4703 - accuracy: 0.8173 Epoch 20/200 21/21 [==============================] - 0s 2ms/step - loss: 0.4649 - accuracy: 0.7981 Epoch 21/200 21/21 [==============================] - 0s 2ms/step - loss: 0.4525 - accuracy: 0.8173 Epoch 22/200 21/21 [==============================] - 0s 3ms/step - loss: 0.4635 - accuracy: 0.7885 Epoch 23/200 21/21 [==============================] - 0s 2ms/step - loss: 0.4270 - accuracy: 0.8125 Epoch 24/200 21/21 [==============================] - 0s 3ms/step - loss: 0.4211 - accuracy: 0.8317 Epoch 25/200 21/21 [==============================] - 0s 2ms/step - loss: 0.4122 - accuracy: 0.8125 Epoch 26/200 21/21 [==============================] - 0s 2ms/step - loss: 0.4130 - accuracy: 0.8029 Epoch 27/200 21/21 [==============================] - 0s 2ms/step - loss: 0.4185 - accuracy: 0.7933 Epoch 28/200 21/21 [==============================] - 0s 2ms/step - loss: 0.4104 - accuracy: 0.8269 Epoch 29/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3857 - accuracy: 0.8173 Epoch 30/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3804 - accuracy: 0.8462 Epoch 31/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3761 - accuracy: 0.8365 Epoch 32/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3716 - accuracy: 0.8365 Epoch 33/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3770 - accuracy: 0.8413 Epoch 34/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3712 - accuracy: 0.8413 Epoch 35/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3610 - accuracy: 0.8269 Epoch 36/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3555 - accuracy: 0.8365 Epoch 37/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3466 - accuracy: 0.8654 Epoch 38/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3475 - accuracy: 0.8510 Epoch 39/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3390 - accuracy: 0.8654 Epoch 40/200 21/21 [==============================] - 0s 3ms/step - loss: 0.3336 - accuracy: 0.8606 Epoch 41/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3465 - accuracy: 0.8510 Epoch 42/200 21/21 [==============================] - 0s 3ms/step - loss: 0.3295 - accuracy: 0.8606 Epoch 43/200 21/21 [==============================] - 0s 3ms/step - loss: 0.3251 - accuracy: 0.8654 Epoch 44/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3217 - accuracy: 0.8750 Epoch 45/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3213 - accuracy: 0.8558 Epoch 46/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3229 - accuracy: 0.8702 Epoch 47/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3174 - accuracy: 0.8558 Epoch 48/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3033 - accuracy: 0.8894 Epoch 49/200 21/21 [==============================] - 0s 3ms/step - loss: 0.3122 - accuracy: 0.8846 Epoch 50/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3050 - accuracy: 0.8846 Epoch 51/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2945 - accuracy: 0.8750 Epoch 52/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2993 - accuracy: 0.8798 Epoch 53/200 21/21 [==============================] - 0s 2ms/step - loss: 0.3010 - accuracy: 0.8846 Epoch 54/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2858 - accuracy: 0.8750 Epoch 55/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2839 - accuracy: 0.8798 Epoch 56/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2875 - accuracy: 0.8798 Epoch 57/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2765 - accuracy: 0.8990 Epoch 58/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2752 - accuracy: 0.8894 Epoch 59/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2888 - accuracy: 0.8798 Epoch 60/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2751 - accuracy: 0.8798 Epoch 61/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2770 - accuracy: 0.8942 Epoch 62/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2628 - accuracy: 0.8990 Epoch 63/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2587 - accuracy: 0.8942 Epoch 64/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2577 - accuracy: 0.9038 Epoch 65/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2526 - accuracy: 0.8990 Epoch 66/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2478 - accuracy: 0.9135 Epoch 67/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2440 - accuracy: 0.9087 Epoch 68/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2478 - accuracy: 0.9038 Epoch 69/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2411 - accuracy: 0.8990 Epoch 70/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2382 - accuracy: 0.9279 Epoch 71/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2336 - accuracy: 0.9087 Epoch 72/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2306 - accuracy: 0.9087 Epoch 73/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2271 - accuracy: 0.9183 Epoch 74/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2307 - accuracy: 0.9183 Epoch 75/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2276 - accuracy: 0.9183 Epoch 76/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2249 - accuracy: 0.9375 Epoch 77/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2185 - accuracy: 0.9327 Epoch 78/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2130 - accuracy: 0.9423 Epoch 79/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2058 - accuracy: 0.9423 Epoch 80/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2035 - accuracy: 0.9471 Epoch 81/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2049 - accuracy: 0.9327 Epoch 82/200 21/21 [==============================] - 0s 2ms/step - loss: 0.2043 - accuracy: 0.9375 Epoch 83/200
21/21 [==============================] - 0s 2ms/step - loss: 0.1976 - accuracy: 0.9471 Epoch 84/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1992 - accuracy: 0.9423 Epoch 85/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1908 - accuracy: 0.9471 Epoch 86/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1895 - accuracy: 0.9375 Epoch 87/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1843 - accuracy: 0.9567 Epoch 88/200 21/21 [==============================] - 0s 3ms/step - loss: 0.1993 - accuracy: 0.9038 Epoch 89/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1852 - accuracy: 0.9327 Epoch 90/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1764 - accuracy: 0.9471 Epoch 91/200 21/21 [==============================] - 0s 3ms/step - loss: 0.1760 - accuracy: 0.9567 Epoch 92/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1704 - accuracy: 0.9423 Epoch 93/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1738 - accuracy: 0.9423 Epoch 94/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1667 - accuracy: 0.9615 Epoch 95/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1608 - accuracy: 0.9567 Epoch 96/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1645 - accuracy: 0.9423 Epoch 97/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1601 - accuracy: 0.9519 Epoch 98/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1607 - accuracy: 0.9567 Epoch 99/200 21/21 [==============================] - 0s 3ms/step - loss: 0.1523 - accuracy: 0.9567 Epoch 100/200 21/21 [==============================] - 0s 3ms/step - loss: 0.1612 - accuracy: 0.9471 Epoch 101/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1593 - accuracy: 0.9423 Epoch 102/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1463 - accuracy: 0.9615 Epoch 103/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1441 - accuracy: 0.9712 Epoch 104/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1416 - accuracy: 0.9663 Epoch 105/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1406 - accuracy: 0.9615 Epoch 106/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1427 - accuracy: 0.9615 Epoch 107/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1384 - accuracy: 0.9615 Epoch 108/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1375 - accuracy: 0.9615 Epoch 109/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1376 - accuracy: 0.9663 Epoch 110/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1331 - accuracy: 0.9663 Epoch 111/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1374 - accuracy: 0.9663 Epoch 112/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1262 - accuracy: 0.9663 Epoch 113/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1366 - accuracy: 0.9567 Epoch 114/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1375 - accuracy: 0.9471 Epoch 115/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1238 - accuracy: 0.9712 Epoch 116/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1281 - accuracy: 0.9615 Epoch 117/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1266 - accuracy: 0.9615 Epoch 118/200 21/21 [==============================] - 0s 3ms/step - loss: 0.1157 - accuracy: 0.9760 Epoch 119/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1158 - accuracy: 0.9712 Epoch 120/200 21/21 [==============================] - 0s 3ms/step - loss: 0.1136 - accuracy: 0.9760 Epoch 121/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1100 - accuracy: 0.9712 Epoch 122/200 21/21 [==============================] - 0s 3ms/step - loss: 0.1115 - accuracy: 0.9760 Epoch 123/200 21/21 [==============================] - 0s 3ms/step - loss: 0.1127 - accuracy: 0.9760 Epoch 124/200 21/21 [==============================] - 0s 3ms/step - loss: 0.1078 - accuracy: 0.9663 Epoch 125/200 21/21 [==============================] - 0s 3ms/step - loss: 0.1061 - accuracy: 0.9712 Epoch 126/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1097 - accuracy: 0.9663 Epoch 127/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1035 - accuracy: 0.9760 Epoch 128/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1014 - accuracy: 0.9760 Epoch 129/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0959 - accuracy: 0.9808 Epoch 130/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1170 - accuracy: 0.9712 Epoch 131/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0987 - accuracy: 0.9760 Epoch 132/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1057 - accuracy: 0.9760 Epoch 133/200 21/21 [==============================] - 0s 2ms/step - loss: 0.1008 - accuracy: 0.9712 Epoch 134/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0963 - accuracy: 0.9808 Epoch 135/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0899 - accuracy: 0.9856 Epoch 136/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0942 - accuracy: 0.9760 Epoch 137/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0901 - accuracy: 0.9760 Epoch 138/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0900 - accuracy: 0.9808 Epoch 139/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0903 - accuracy: 0.9760 Epoch 140/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0840 - accuracy: 0.9856 Epoch 141/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0815 - accuracy: 0.9856 Epoch 142/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0935 - accuracy: 0.9712 Epoch 143/200 21/21 [==============================] - 0s 3ms/step - loss: 0.0825 - accuracy: 0.9856 Epoch 144/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0808 - accuracy: 0.9856 Epoch 145/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0770 - accuracy: 0.9856 Epoch 146/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0775 - accuracy: 0.9808 Epoch 147/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0866 - accuracy: 0.9808 Epoch 148/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0752 - accuracy: 0.9856 Epoch 149/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0734 - accuracy: 0.9856 Epoch 150/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0737 - accuracy: 0.9856 Epoch 151/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0710 - accuracy: 0.9856 Epoch 152/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0712 - accuracy: 0.9856 Epoch 153/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0766 - accuracy: 0.9904 Epoch 154/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0721 - accuracy: 0.9856 Epoch 155/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0779 - accuracy: 0.9760 Epoch 156/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0741 - accuracy: 0.9808 Epoch 157/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0686 - accuracy: 0.9904 Epoch 158/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0733 - accuracy: 0.9904 Epoch 159/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0652 - accuracy: 0.9904 Epoch 160/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0639 - accuracy: 0.9856 Epoch 161/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0672 - accuracy: 0.9856 Epoch 162/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0609 - accuracy: 0.9952 Epoch 163/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0648 - accuracy: 0.9904 Epoch 164/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0740 - accuracy: 0.9808 Epoch 165/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0628 - accuracy: 0.9904 Epoch 166/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0611 - accuracy: 0.9952 Epoch 167/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0545 - accuracy: 0.9952 Epoch 168/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0592 - accuracy: 0.9904 Epoch 169/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0553 - accuracy: 0.9952 Epoch 170/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0557 - accuracy: 0.9952 Epoch 171/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0565 - accuracy: 0.9952 Epoch 172/200 21/21 [==============================] - 0s 3ms/step - loss: 0.0524 - accuracy: 0.9904 Epoch 173/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0524 - accuracy: 0.9904 Epoch 174/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0511 - accuracy: 0.9952 Epoch 175/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0529 - accuracy: 0.9952 Epoch 176/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0541 - accuracy: 0.9952 Epoch 177/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0494 - accuracy: 0.9904 Epoch 178/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0502 - accuracy: 0.9904 Epoch 179/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0509 - accuracy: 0.9952 Epoch 180/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0533 - accuracy: 0.9952 Epoch 181/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0496 - accuracy: 0.9952 Epoch 182/200 21/21 [==============================] - 0s 3ms/step - loss: 0.0498 - accuracy: 0.9904 Epoch 183/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0447 - accuracy: 0.9952 Epoch 184/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0457 - accuracy: 0.9952 Epoch 185/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0425 - accuracy: 1.0000 Epoch 186/200 21/21 [==============================] - 0s 3ms/step - loss: 0.0409 - accuracy: 0.9952 Epoch 187/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0472 - accuracy: 1.0000 Epoch 188/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0429 - accuracy: 1.0000 Epoch 189/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0395 - accuracy: 0.9952 Epoch 190/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0422 - accuracy: 0.9952 Epoch 191/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0404 - accuracy: 0.9904 Epoch 192/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0401 - accuracy: 0.9952 Epoch 193/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0378 - accuracy: 1.0000 Epoch 194/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0393 - accuracy: 0.9952 Epoch 195/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0356 - accuracy: 0.9952 Epoch 196/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0367 - accuracy: 1.0000 Epoch 197/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0366 - accuracy: 1.0000 Epoch 198/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0347 - accuracy: 1.0000 Epoch 199/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0349 - accuracy: 1.0000 Epoch 200/200 21/21 [==============================] - 0s 2ms/step - loss: 0.0327 - accuracy: 1.0000
3. 학습셋과 테스트셋¶
In [6]:
Copied!
# 사이킷런 라이브러리를 설치하는 부분입니다. 처음 설치한다면 아래 #를 삭제하고 실행하세요.
#!pip install sklearn
# 사이킷런 라이브러리를 설치하는 부분입니다. 처음 설치한다면 아래 #를 삭제하고 실행하세요.
#!pip install sklearn
In [7]:
Copied!
from tensorflow.keras.models import Sequential, load_model
from tensorflow.keras.layers import Dense
from sklearn.model_selection import train_test_split
import pandas as pd
from tensorflow.keras.models import Sequential, load_model
from tensorflow.keras.layers import Dense
from sklearn.model_selection import train_test_split
import pandas as pd
In [8]:
Copied!
# 데이터를 입력합니다.
df = pd.read_csv('./data/sonar3.csv', header=None)
# 데이터를 입력합니다.
df = pd.read_csv('./data/sonar3.csv', header=None)
In [4]:
Copied!
# 음파 관련 속성을 X로, 광물의 종류를 y로 저장합니다.
X = df.iloc[:,0:60]
y = df.iloc[:,60]
# 음파 관련 속성을 X로, 광물의 종류를 y로 저장합니다.
X = df.iloc[:,0:60]
y = df.iloc[:,60]
In [10]:
Copied!
# 학습 셋과 테스트 셋을 구분합니다.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, shuffle=True)
# 학습 셋과 테스트 셋을 구분합니다.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, shuffle=True)
In [11]:
Copied!
# 모델을 설정합니다.
model = Sequential()
model.add(Dense(24, input_dim=60, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 모델을 컴파일합니다.
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 모델을 실행합니다.
history=model.fit(X_train, y_train, epochs=200, batch_size=10)
# 모델을 설정합니다.
model = Sequential()
model.add(Dense(24, input_dim=60, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 모델을 컴파일합니다.
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 모델을 실행합니다.
history=model.fit(X_train, y_train, epochs=200, batch_size=10)
Epoch 1/200 15/15 [==============================] - 0s 3ms/step - loss: 0.7158 - accuracy: 0.4828 Epoch 2/200 15/15 [==============================] - 0s 3ms/step - loss: 0.6680 - accuracy: 0.6276 Epoch 3/200 15/15 [==============================] - 0s 3ms/step - loss: 0.6599 - accuracy: 0.6345 Epoch 4/200 15/15 [==============================] - 0s 3ms/step - loss: 0.6514 - accuracy: 0.6828 Epoch 5/200 15/15 [==============================] - 0s 3ms/step - loss: 0.6419 - accuracy: 0.7310 Epoch 6/200 15/15 [==============================] - 0s 3ms/step - loss: 0.6322 - accuracy: 0.7517 Epoch 7/200 15/15 [==============================] - 0s 3ms/step - loss: 0.6159 - accuracy: 0.7655 Epoch 8/200 15/15 [==============================] - 0s 3ms/step - loss: 0.6008 - accuracy: 0.7517 Epoch 9/200 15/15 [==============================] - 0s 2ms/step - loss: 0.5864 - accuracy: 0.7655 Epoch 10/200 15/15 [==============================] - 0s 2ms/step - loss: 0.5700 - accuracy: 0.7517 Epoch 11/200 15/15 [==============================] - 0s 2ms/step - loss: 0.5565 - accuracy: 0.7448 Epoch 12/200 15/15 [==============================] - 0s 2ms/step - loss: 0.5465 - accuracy: 0.7517 Epoch 13/200 15/15 [==============================] - 0s 3ms/step - loss: 0.5309 - accuracy: 0.7586 Epoch 14/200 15/15 [==============================] - 0s 3ms/step - loss: 0.5186 - accuracy: 0.7793 Epoch 15/200 15/15 [==============================] - 0s 3ms/step - loss: 0.5058 - accuracy: 0.8000 Epoch 16/200 15/15 [==============================] - 0s 2ms/step - loss: 0.4999 - accuracy: 0.7931 Epoch 17/200 15/15 [==============================] - 0s 2ms/step - loss: 0.4824 - accuracy: 0.8276 Epoch 18/200 15/15 [==============================] - 0s 2ms/step - loss: 0.4709 - accuracy: 0.8276 Epoch 19/200 15/15 [==============================] - 0s 2ms/step - loss: 0.4638 - accuracy: 0.8276 Epoch 20/200 15/15 [==============================] - 0s 2ms/step - loss: 0.4509 - accuracy: 0.8345 Epoch 21/200 15/15 [==============================] - 0s 2ms/step - loss: 0.4502 - accuracy: 0.8138 Epoch 22/200 15/15 [==============================] - 0s 2ms/step - loss: 0.4522 - accuracy: 0.8138 Epoch 23/200 15/15 [==============================] - 0s 2ms/step - loss: 0.4290 - accuracy: 0.8207 Epoch 24/200 15/15 [==============================] - 0s 2ms/step - loss: 0.4165 - accuracy: 0.8345 Epoch 25/200 15/15 [==============================] - 0s 2ms/step - loss: 0.4125 - accuracy: 0.8345 Epoch 26/200 15/15 [==============================] - 0s 2ms/step - loss: 0.4039 - accuracy: 0.8414 Epoch 27/200 15/15 [==============================] - 0s 3ms/step - loss: 0.4029 - accuracy: 0.8345 Epoch 28/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3906 - accuracy: 0.8483 Epoch 29/200 15/15 [==============================] - 0s 3ms/step - loss: 0.3909 - accuracy: 0.8414 Epoch 30/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3776 - accuracy: 0.8552 Epoch 31/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3761 - accuracy: 0.8690 Epoch 32/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3834 - accuracy: 0.8207 Epoch 33/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3674 - accuracy: 0.8828 Epoch 34/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3667 - accuracy: 0.8690 Epoch 35/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3726 - accuracy: 0.8138 Epoch 36/200 15/15 [==============================] - 0s 3ms/step - loss: 0.3612 - accuracy: 0.8621 Epoch 37/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3482 - accuracy: 0.8690 Epoch 38/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3419 - accuracy: 0.8759 Epoch 39/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3416 - accuracy: 0.8828 Epoch 40/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3412 - accuracy: 0.8690 Epoch 41/200 15/15 [==============================] - 0s 3ms/step - loss: 0.3370 - accuracy: 0.8690 Epoch 42/200 15/15 [==============================] - 0s 3ms/step - loss: 0.3546 - accuracy: 0.8690 Epoch 43/200 15/15 [==============================] - 0s 3ms/step - loss: 0.3399 - accuracy: 0.8552 Epoch 44/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3410 - accuracy: 0.8690 Epoch 45/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3308 - accuracy: 0.8828 Epoch 46/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3216 - accuracy: 0.8690 Epoch 47/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3217 - accuracy: 0.8759 Epoch 48/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3117 - accuracy: 0.8966 Epoch 49/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3079 - accuracy: 0.8966 Epoch 50/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3158 - accuracy: 0.8759 Epoch 51/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3086 - accuracy: 0.8966 Epoch 52/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2970 - accuracy: 0.9034 Epoch 53/200 15/15 [==============================] - 0s 3ms/step - loss: 0.2946 - accuracy: 0.9103 Epoch 54/200 15/15 [==============================] - 0s 2ms/step - loss: 0.3012 - accuracy: 0.9103 Epoch 55/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2902 - accuracy: 0.9103 Epoch 56/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2877 - accuracy: 0.9034 Epoch 57/200 15/15 [==============================] - 0s 3ms/step - loss: 0.3006 - accuracy: 0.8966 Epoch 58/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2907 - accuracy: 0.8828 Epoch 59/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2886 - accuracy: 0.9034 Epoch 60/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2779 - accuracy: 0.9172 Epoch 61/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2734 - accuracy: 0.9103 Epoch 62/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2709 - accuracy: 0.9172 Epoch 63/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2746 - accuracy: 0.9103 Epoch 64/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2678 - accuracy: 0.9034 Epoch 65/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2688 - accuracy: 0.9172 Epoch 66/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2670 - accuracy: 0.9103 Epoch 67/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2621 - accuracy: 0.9034 Epoch 68/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2536 - accuracy: 0.9241 Epoch 69/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2567 - accuracy: 0.9241 Epoch 70/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2543 - accuracy: 0.9103 Epoch 71/200 15/15 [==============================] - 0s 3ms/step - loss: 0.2517 - accuracy: 0.9103 Epoch 72/200 15/15 [==============================] - 0s 3ms/step - loss: 0.2607 - accuracy: 0.9172 Epoch 73/200 15/15 [==============================] - 0s 3ms/step - loss: 0.2416 - accuracy: 0.9310 Epoch 74/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2433 - accuracy: 0.9379 Epoch 75/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2397 - accuracy: 0.9310 Epoch 76/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2604 - accuracy: 0.9103 Epoch 77/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2376 - accuracy: 0.9103 Epoch 78/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2348 - accuracy: 0.9310 Epoch 79/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2412 - accuracy: 0.9241 Epoch 80/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2309 - accuracy: 0.9310 Epoch 81/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2245 - accuracy: 0.9517 Epoch 82/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2404 - accuracy: 0.9103 Epoch 83/200
15/15 [==============================] - 0s 2ms/step - loss: 0.2319 - accuracy: 0.9448 Epoch 84/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2186 - accuracy: 0.9448 Epoch 85/200 15/15 [==============================] - 0s 3ms/step - loss: 0.2187 - accuracy: 0.9379 Epoch 86/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2156 - accuracy: 0.9172 Epoch 87/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2416 - accuracy: 0.9103 Epoch 88/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2083 - accuracy: 0.9517 Epoch 89/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2104 - accuracy: 0.9379 Epoch 90/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2052 - accuracy: 0.9448 Epoch 91/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2030 - accuracy: 0.9517 Epoch 92/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2038 - accuracy: 0.9517 Epoch 93/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2086 - accuracy: 0.9172 Epoch 94/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2015 - accuracy: 0.9379 Epoch 95/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1943 - accuracy: 0.9517 Epoch 96/200 15/15 [==============================] - 0s 2ms/step - loss: 0.2063 - accuracy: 0.9310 Epoch 97/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1968 - accuracy: 0.9448 Epoch 98/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1905 - accuracy: 0.9586 Epoch 99/200 15/15 [==============================] - 0s 3ms/step - loss: 0.1900 - accuracy: 0.9517 Epoch 100/200 15/15 [==============================] - 0s 3ms/step - loss: 0.2090 - accuracy: 0.9172 Epoch 101/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1898 - accuracy: 0.9448 Epoch 102/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1897 - accuracy: 0.9448 Epoch 103/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1821 - accuracy: 0.9448 Epoch 104/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1889 - accuracy: 0.9379 Epoch 105/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1777 - accuracy: 0.9586 Epoch 106/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1827 - accuracy: 0.9379 Epoch 107/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1774 - accuracy: 0.9586 Epoch 108/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1715 - accuracy: 0.9724 Epoch 109/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1697 - accuracy: 0.9655 Epoch 110/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1747 - accuracy: 0.9655 Epoch 111/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1648 - accuracy: 0.9586 Epoch 112/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1670 - accuracy: 0.9655 Epoch 113/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1641 - accuracy: 0.9586 Epoch 114/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1630 - accuracy: 0.9655 Epoch 115/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1589 - accuracy: 0.9655 Epoch 116/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1622 - accuracy: 0.9517 Epoch 117/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1593 - accuracy: 0.9586 Epoch 118/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1527 - accuracy: 0.9724 Epoch 119/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1539 - accuracy: 0.9655 Epoch 120/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1534 - accuracy: 0.9724 Epoch 121/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1550 - accuracy: 0.9655 Epoch 122/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1499 - accuracy: 0.9793 Epoch 123/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1503 - accuracy: 0.9724 Epoch 124/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1494 - accuracy: 0.9586 Epoch 125/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1423 - accuracy: 0.9793 Epoch 126/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1399 - accuracy: 0.9793 Epoch 127/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1456 - accuracy: 0.9793 Epoch 128/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1472 - accuracy: 0.9724 Epoch 129/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1365 - accuracy: 0.9793 Epoch 130/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1349 - accuracy: 0.9793 Epoch 131/200 15/15 [==============================] - 0s 3ms/step - loss: 0.1334 - accuracy: 0.9793 Epoch 132/200 15/15 [==============================] - 0s 3ms/step - loss: 0.1331 - accuracy: 0.9793 Epoch 133/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1361 - accuracy: 0.9724 Epoch 134/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1299 - accuracy: 0.9793 Epoch 135/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1275 - accuracy: 0.9793 Epoch 136/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1303 - accuracy: 0.9793 Epoch 137/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1272 - accuracy: 0.9724 Epoch 138/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1327 - accuracy: 0.9724 Epoch 139/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1229 - accuracy: 0.9724 Epoch 140/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1265 - accuracy: 0.9793 Epoch 141/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1230 - accuracy: 0.9724 Epoch 142/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1197 - accuracy: 0.9793 Epoch 143/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1210 - accuracy: 0.9793 Epoch 144/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1168 - accuracy: 0.9793 Epoch 145/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1211 - accuracy: 0.9793 Epoch 146/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1178 - accuracy: 0.9793 Epoch 147/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1118 - accuracy: 0.9793 Epoch 148/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1111 - accuracy: 0.9793 Epoch 149/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1213 - accuracy: 0.9724 Epoch 150/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1118 - accuracy: 0.9724 Epoch 151/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1075 - accuracy: 0.9793 Epoch 152/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1069 - accuracy: 0.9793 Epoch 153/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1069 - accuracy: 0.9793 Epoch 154/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1041 - accuracy: 0.9793 Epoch 155/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1030 - accuracy: 0.9793 Epoch 156/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1010 - accuracy: 0.9793 Epoch 157/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1045 - accuracy: 0.9793 Epoch 158/200 15/15 [==============================] - 0s 3ms/step - loss: 0.1019 - accuracy: 0.9793 Epoch 159/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0980 - accuracy: 0.9793 Epoch 160/200 15/15 [==============================] - 0s 2ms/step - loss: 0.1007 - accuracy: 0.9793 Epoch 161/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0992 - accuracy: 0.9793 Epoch 162/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0944 - accuracy: 0.9793 Epoch 163/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0941 - accuracy: 0.9793 Epoch 164/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0965 - accuracy: 0.9793 Epoch 165/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0934 - accuracy: 0.9793 Epoch 166/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0922 - accuracy: 0.9793 Epoch 167/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0901 - accuracy: 0.9793 Epoch 168/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0898 - accuracy: 0.9793 Epoch 169/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0893 - accuracy: 0.9793 Epoch 170/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0890 - accuracy: 0.9793 Epoch 171/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0836 - accuracy: 0.9793 Epoch 172/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0828 - accuracy: 0.9793 Epoch 173/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0833 - accuracy: 0.9862 Epoch 174/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0849 - accuracy: 0.9793 Epoch 175/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0814 - accuracy: 0.9793 Epoch 176/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0821 - accuracy: 0.9793 Epoch 177/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0795 - accuracy: 0.9793 Epoch 178/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0791 - accuracy: 0.9793 Epoch 179/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0774 - accuracy: 0.9862 Epoch 180/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0792 - accuracy: 0.9793 Epoch 181/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0832 - accuracy: 0.9793 Epoch 182/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0841 - accuracy: 0.9793 Epoch 183/200 15/15 [==============================] - 0s 3ms/step - loss: 0.0869 - accuracy: 0.9793 Epoch 184/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0776 - accuracy: 0.9793 Epoch 185/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0713 - accuracy: 0.9931 Epoch 186/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0710 - accuracy: 0.9931 Epoch 187/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0712 - accuracy: 0.9862 Epoch 188/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0693 - accuracy: 0.9862 Epoch 189/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0680 - accuracy: 0.9931 Epoch 190/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0662 - accuracy: 0.9862 Epoch 191/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0654 - accuracy: 0.9931 Epoch 192/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0638 - accuracy: 0.9931 Epoch 193/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0639 - accuracy: 0.9931 Epoch 194/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0645 - accuracy: 0.9931 Epoch 195/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0654 - accuracy: 0.9931 Epoch 196/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0656 - accuracy: 0.9931 Epoch 197/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0655 - accuracy: 0.9862 Epoch 198/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0670 - accuracy: 0.9931 Epoch 199/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0702 - accuracy: 0.9862 Epoch 200/200 15/15 [==============================] - 0s 2ms/step - loss: 0.0590 - accuracy: 0.9931
In [12]:
Copied!
# 모델을 테스트셋에 적용해 정확도를 구합니다.
score=model.evaluate(X_test, y_test)
print('Test accuracy:', score[1])
# 모델을 테스트셋에 적용해 정확도를 구합니다.
score=model.evaluate(X_test, y_test)
print('Test accuracy:', score[1])
2/2 [==============================] - 0s 2ms/step - loss: 0.4214 - accuracy: 0.8413 Test accuracy: 0.841269850730896
4. 모델 저장과 재사용¶
In [13]:
Copied!
# 모델을 저장합니다.
model.save('./data/model/my_model.hdf5')
# 모델을 저장합니다.
model.save('./data/model/my_model.hdf5')
In [14]:
Copied!
# 테스트를 위해 조금 전 사용한 모델을 메모리에서 삭제합니다.
del model
# 테스트를 위해 조금 전 사용한 모델을 메모리에서 삭제합니다.
del model
In [15]:
Copied!
# 모델을 새로 불러옵니다.
model = load_model('./data/model/my_model.hdf5')
# 불러온 모델을 테스트셋에 적용해 정확도를 구합니다.
score=model.evaluate(X_test, y_test)
print('Test accuracy:', score[1])
# 모델을 새로 불러옵니다.
model = load_model('./data/model/my_model.hdf5')
# 불러온 모델을 테스트셋에 적용해 정확도를 구합니다.
score=model.evaluate(X_test, y_test)
print('Test accuracy:', score[1])
2/2 [==============================] - 0s 2ms/step - loss: 0.4214 - accuracy: 0.8413 Test accuracy: 0.841269850730896
5. k겹 교차 검증¶
In [5]:
Copied!
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from sklearn.model_selection import KFold
from sklearn.metrics import accuracy_score
import pandas as pd
# 데이터를 입력합니다.
df = pd.read_csv('./data/sonar3.csv', header=None)
# 음파 관련 속성을 X로, 광물의 종류를 y로 저장합니다.
X = df.iloc[:,0:60]
y = df.iloc[:,60]
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from sklearn.model_selection import KFold
from sklearn.metrics import accuracy_score
import pandas as pd
# 데이터를 입력합니다.
df = pd.read_csv('./data/sonar3.csv', header=None)
# 음파 관련 속성을 X로, 광물의 종류를 y로 저장합니다.
X = df.iloc[:,0:60]
y = df.iloc[:,60]
In [19]:
Copied!
#몇 겹으로 나눌 것인지를 정합니다.
k=5
#KFold 함수를 불러옵니다. 분할하기 전에 샘플이 치우치지 않도록 섞어 줍니다.
kfold = KFold(n_splits=k, shuffle=True)
#정확도가 채워질 빈 리스트를 준비합니다.
acc_score = []
def model_fn():
model = Sequential() #딥러닝 모델의 구조를 시작합니다.
model.add(Dense(24, input_dim=60, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
return model
#K겹 교차 검증을 이용해 k번의 학습을 실행합니다.
for train_index , test_index in kfold.split(X): # for문에 의해서 k번 반복합니다. spilt()에 의해 k개의 학습셋, 테스트셋으로 분리됩니다.
X_train , X_test = X.iloc[train_index,:], X.iloc[test_index,:]
y_train , y_test = y.iloc[train_index], y.iloc[test_index]
model = model_fn()
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
history=model.fit(X_train, y_train, epochs=200, batch_size=10, verbose=0)
accuracy = model.evaluate(X_test, y_test)[1] #정확도를 구합니다.
acc_score.append(accuracy) #정확도 리스트에 저장합니다.
#k번 실시된 정확도의 평균을 구합니다.
avg_acc_score = sum(acc_score)/k
#결과를 출력합니다.
print('정확도:', acc_score)
print('정확도 평균:', avg_acc_score)
#몇 겹으로 나눌 것인지를 정합니다.
k=5
#KFold 함수를 불러옵니다. 분할하기 전에 샘플이 치우치지 않도록 섞어 줍니다.
kfold = KFold(n_splits=k, shuffle=True)
#정확도가 채워질 빈 리스트를 준비합니다.
acc_score = []
def model_fn():
model = Sequential() #딥러닝 모델의 구조를 시작합니다.
model.add(Dense(24, input_dim=60, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
return model
#K겹 교차 검증을 이용해 k번의 학습을 실행합니다.
for train_index , test_index in kfold.split(X): # for문에 의해서 k번 반복합니다. spilt()에 의해 k개의 학습셋, 테스트셋으로 분리됩니다.
X_train , X_test = X.iloc[train_index,:], X.iloc[test_index,:]
y_train , y_test = y.iloc[train_index], y.iloc[test_index]
model = model_fn()
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
history=model.fit(X_train, y_train, epochs=200, batch_size=10, verbose=0)
accuracy = model.evaluate(X_test, y_test)[1] #정확도를 구합니다.
acc_score.append(accuracy) #정확도 리스트에 저장합니다.
#k번 실시된 정확도의 평균을 구합니다.
avg_acc_score = sum(acc_score)/k
#결과를 출력합니다.
print('정확도:', acc_score)
print('정확도 평균:', avg_acc_score)
2/2 [==============================] - 0s 2ms/step - loss: 1.0080 - accuracy: 0.7381 2/2 [==============================] - 0s 2ms/step - loss: 0.7071 - accuracy: 0.8095 WARNING:tensorflow:5 out of the last 9 calls to <function Model.make_test_function.<locals>.test_function at 0x000001EDE50D60D0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details. 2/2 [==============================] - 0s 2ms/step - loss: 0.3312 - accuracy: 0.8810 WARNING:tensorflow:6 out of the last 11 calls to <function Model.make_test_function.<locals>.test_function at 0x000001EDE5112AF0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details. 2/2 [==============================] - 0s 2ms/step - loss: 0.4377 - accuracy: 0.9024 2/2 [==============================] - 0s 3ms/step - loss: 0.6416 - accuracy: 0.7317 정확도: [0.738095223903656, 0.8095238208770752, 0.8809523582458496, 0.9024389982223511, 0.7317073345184326] 정확도 평균: 0.8125435471534729