Model 1 (1 hidden layer)
# Arsitektur Model
model <- keras_model_sequential() %>%
layer_dense(units = 64, activation = "relu", input_shape = ncol(train_X)) %>%
layer_dense(units = ncol(train_y), activation = "softmax")
# Kompilasi Model
model %>% compile(
loss = "categorical_crossentropy",
optimizer = "adam",
metrics = c("accuracy")
)
print(model)
## Model: "sequential"
## ____________________________________________________________________
## Layer (type) Output Shape Param #
## ====================================================================
## dense_1 (Dense) (None, 64) 2048
## dense (Dense) (None, 7) 455
## ====================================================================
## Total params: 2503 (9.78 KB)
## Trainable params: 2503 (9.78 KB)
## Non-trainable params: 0 (0.00 Byte)
## ____________________________________________________________________
# Training Model
history <- model %>% fit(
train_X, train_y,
shuffle = T,
epochs = 100,
batch_size = 32,
validation_split = 0.2
)
## Epoch 1/100
## 43/43 - 2s - loss: 1.8763 - accuracy: 0.2115 - val_loss: 2.9047 - val_accuracy: 0.0000e+00 - 2s/epoch - 51ms/step
## Epoch 2/100
## 43/43 - 1s - loss: 1.6734 - accuracy: 0.3580 - val_loss: 3.3868 - val_accuracy: 0.0088 - 587ms/epoch - 14ms/step
## Epoch 3/100
## 43/43 - 0s - loss: 1.5492 - accuracy: 0.4053 - val_loss: 3.5944 - val_accuracy: 0.1091 - 457ms/epoch - 11ms/step
## Epoch 4/100
## 43/43 - 1s - loss: 1.4508 - accuracy: 0.4527 - val_loss: 3.6416 - val_accuracy: 0.1150 - 517ms/epoch - 12ms/step
## Epoch 5/100
## 43/43 - 0s - loss: 1.3741 - accuracy: 0.4882 - val_loss: 3.4832 - val_accuracy: 0.0914 - 475ms/epoch - 11ms/step
## Epoch 6/100
## 43/43 - 0s - loss: 1.3146 - accuracy: 0.5074 - val_loss: 3.3722 - val_accuracy: 0.2212 - 483ms/epoch - 11ms/step
## Epoch 7/100
## 43/43 - 0s - loss: 1.2702 - accuracy: 0.5274 - val_loss: 3.2382 - val_accuracy: 0.2330 - 500ms/epoch - 12ms/step
## Epoch 8/100
## 43/43 - 1s - loss: 1.2240 - accuracy: 0.5525 - val_loss: 3.1389 - val_accuracy: 0.2242 - 514ms/epoch - 12ms/step
## Epoch 9/100
## 43/43 - 0s - loss: 1.1875 - accuracy: 0.5814 - val_loss: 3.1399 - val_accuracy: 0.1976 - 448ms/epoch - 10ms/step
## Epoch 10/100
## 43/43 - 0s - loss: 1.1559 - accuracy: 0.5865 - val_loss: 3.0029 - val_accuracy: 0.2035 - 433ms/epoch - 10ms/step
## Epoch 11/100
## 43/43 - 0s - loss: 1.1235 - accuracy: 0.6028 - val_loss: 2.8464 - val_accuracy: 0.2065 - 435ms/epoch - 10ms/step
## Epoch 12/100
## 43/43 - 0s - loss: 1.0974 - accuracy: 0.6206 - val_loss: 2.7371 - val_accuracy: 0.2537 - 486ms/epoch - 11ms/step
## Epoch 13/100
## 43/43 - 1s - loss: 1.0737 - accuracy: 0.6176 - val_loss: 2.6654 - val_accuracy: 0.2153 - 501ms/epoch - 12ms/step
## Epoch 14/100
## 43/43 - 0s - loss: 1.0482 - accuracy: 0.6265 - val_loss: 2.5095 - val_accuracy: 0.2507 - 424ms/epoch - 10ms/step
## Epoch 15/100
## 43/43 - 1s - loss: 1.0252 - accuracy: 0.6546 - val_loss: 2.3661 - val_accuracy: 0.2507 - 502ms/epoch - 12ms/step
## Epoch 16/100
## 43/43 - 0s - loss: 1.0023 - accuracy: 0.6531 - val_loss: 2.3335 - val_accuracy: 0.2153 - 454ms/epoch - 11ms/step
## Epoch 17/100
## 43/43 - 1s - loss: 0.9864 - accuracy: 0.6620 - val_loss: 2.3392 - val_accuracy: 0.2153 - 510ms/epoch - 12ms/step
## Epoch 18/100
## 43/43 - 0s - loss: 0.9685 - accuracy: 0.6694 - val_loss: 2.2274 - val_accuracy: 0.1888 - 451ms/epoch - 10ms/step
## Epoch 19/100
## 43/43 - 1s - loss: 0.9466 - accuracy: 0.6797 - val_loss: 2.0668 - val_accuracy: 0.2419 - 575ms/epoch - 13ms/step
## Epoch 20/100
## 43/43 - 0s - loss: 0.9255 - accuracy: 0.6849 - val_loss: 2.0416 - val_accuracy: 0.2301 - 482ms/epoch - 11ms/step
## Epoch 21/100
## 43/43 - 1s - loss: 0.9120 - accuracy: 0.6864 - val_loss: 2.0341 - val_accuracy: 0.2478 - 509ms/epoch - 12ms/step
## Epoch 22/100
## 43/43 - 0s - loss: 0.8955 - accuracy: 0.6923 - val_loss: 1.8843 - val_accuracy: 0.2566 - 439ms/epoch - 10ms/step
## Epoch 23/100
## 43/43 - 0s - loss: 0.8773 - accuracy: 0.6975 - val_loss: 1.7692 - val_accuracy: 0.2537 - 480ms/epoch - 11ms/step
## Epoch 24/100
## 43/43 - 0s - loss: 0.8627 - accuracy: 0.7049 - val_loss: 1.6241 - val_accuracy: 0.2684 - 420ms/epoch - 10ms/step
## Epoch 25/100
## 43/43 - 0s - loss: 0.8463 - accuracy: 0.7056 - val_loss: 1.6227 - val_accuracy: 0.2566 - 496ms/epoch - 12ms/step
## Epoch 26/100
## 43/43 - 0s - loss: 0.8344 - accuracy: 0.7160 - val_loss: 1.5231 - val_accuracy: 0.2625 - 420ms/epoch - 10ms/step
## Epoch 27/100
## 43/43 - 0s - loss: 0.8176 - accuracy: 0.7204 - val_loss: 1.5009 - val_accuracy: 0.2596 - 435ms/epoch - 10ms/step
## Epoch 28/100
## 43/43 - 0s - loss: 0.8001 - accuracy: 0.7322 - val_loss: 1.4384 - val_accuracy: 0.2684 - 421ms/epoch - 10ms/step
## Epoch 29/100
## 43/43 - 0s - loss: 0.7882 - accuracy: 0.7359 - val_loss: 1.3486 - val_accuracy: 0.2684 - 455ms/epoch - 11ms/step
## Epoch 30/100
## 43/43 - 1s - loss: 0.7759 - accuracy: 0.7411 - val_loss: 1.2993 - val_accuracy: 0.2684 - 517ms/epoch - 12ms/step
## Epoch 31/100
## 43/43 - 0s - loss: 0.7634 - accuracy: 0.7433 - val_loss: 1.2524 - val_accuracy: 0.2684 - 439ms/epoch - 10ms/step
## Epoch 32/100
## 43/43 - 0s - loss: 0.7484 - accuracy: 0.7426 - val_loss: 1.1967 - val_accuracy: 0.2684 - 470ms/epoch - 11ms/step
## Epoch 33/100
## 43/43 - 0s - loss: 0.7330 - accuracy: 0.7507 - val_loss: 1.1582 - val_accuracy: 0.2625 - 466ms/epoch - 11ms/step
## Epoch 34/100
## 43/43 - 0s - loss: 0.7205 - accuracy: 0.7581 - val_loss: 1.1014 - val_accuracy: 0.2684 - 497ms/epoch - 12ms/step
## Epoch 35/100
## 43/43 - 0s - loss: 0.7065 - accuracy: 0.7596 - val_loss: 1.1480 - val_accuracy: 0.2596 - 471ms/epoch - 11ms/step
## Epoch 36/100
## 43/43 - 0s - loss: 0.6974 - accuracy: 0.7618 - val_loss: 1.0800 - val_accuracy: 0.2625 - 497ms/epoch - 12ms/step
## Epoch 37/100
## 43/43 - 0s - loss: 0.6851 - accuracy: 0.7626 - val_loss: 1.0121 - val_accuracy: 0.2625 - 419ms/epoch - 10ms/step
## Epoch 38/100
## 43/43 - 0s - loss: 0.6741 - accuracy: 0.7729 - val_loss: 0.9681 - val_accuracy: 0.2625 - 464ms/epoch - 11ms/step
## Epoch 39/100
## 43/43 - 0s - loss: 0.6611 - accuracy: 0.7722 - val_loss: 1.0196 - val_accuracy: 0.2596 - 421ms/epoch - 10ms/step
## Epoch 40/100
## 43/43 - 0s - loss: 0.6498 - accuracy: 0.7774 - val_loss: 0.8687 - val_accuracy: 0.2625 - 451ms/epoch - 10ms/step
## Epoch 41/100
## 43/43 - 0s - loss: 0.6400 - accuracy: 0.7774 - val_loss: 0.8091 - val_accuracy: 0.2743 - 436ms/epoch - 10ms/step
## Epoch 42/100
## 43/43 - 0s - loss: 0.6269 - accuracy: 0.7944 - val_loss: 0.8219 - val_accuracy: 0.2802 - 432ms/epoch - 10ms/step
## Epoch 43/100
## 43/43 - 0s - loss: 0.6183 - accuracy: 0.7862 - val_loss: 0.8546 - val_accuracy: 0.2596 - 480ms/epoch - 11ms/step
## Epoch 44/100
## 43/43 - 0s - loss: 0.6118 - accuracy: 0.7973 - val_loss: 0.8476 - val_accuracy: 0.2566 - 419ms/epoch - 10ms/step
## Epoch 45/100
## 43/43 - 0s - loss: 0.6065 - accuracy: 0.8033 - val_loss: 0.8330 - val_accuracy: 0.2655 - 499ms/epoch - 12ms/step
## Epoch 46/100
## 43/43 - 0s - loss: 0.5900 - accuracy: 0.8040 - val_loss: 0.7856 - val_accuracy: 0.2802 - 470ms/epoch - 11ms/step
## Epoch 47/100
## 43/43 - 1s - loss: 0.5804 - accuracy: 0.8047 - val_loss: 0.6645 - val_accuracy: 0.5251 - 511ms/epoch - 12ms/step
## Epoch 48/100
## 43/43 - 0s - loss: 0.5729 - accuracy: 0.8092 - val_loss: 0.6270 - val_accuracy: 0.6549 - 486ms/epoch - 11ms/step
## Epoch 49/100
## 43/43 - 0s - loss: 0.5656 - accuracy: 0.8092 - val_loss: 0.6102 - val_accuracy: 0.6460 - 497ms/epoch - 12ms/step
## Epoch 50/100
## 43/43 - 0s - loss: 0.5500 - accuracy: 0.8232 - val_loss: 0.6516 - val_accuracy: 0.5575 - 435ms/epoch - 10ms/step
## Epoch 51/100
## 43/43 - 1s - loss: 0.5448 - accuracy: 0.8306 - val_loss: 0.6130 - val_accuracy: 0.6549 - 532ms/epoch - 12ms/step
## Epoch 52/100
## 43/43 - 0s - loss: 0.5345 - accuracy: 0.8291 - val_loss: 0.4479 - val_accuracy: 1.0000 - 421ms/epoch - 10ms/step
## Epoch 53/100
## 43/43 - 0s - loss: 0.5274 - accuracy: 0.8299 - val_loss: 0.5195 - val_accuracy: 0.9617 - 462ms/epoch - 11ms/step
## Epoch 54/100
## 43/43 - 0s - loss: 0.5179 - accuracy: 0.8388 - val_loss: 0.4716 - val_accuracy: 0.9971 - 451ms/epoch - 10ms/step
## Epoch 55/100
## 43/43 - 0s - loss: 0.5089 - accuracy: 0.8439 - val_loss: 0.4669 - val_accuracy: 0.9971 - 466ms/epoch - 11ms/step
## Epoch 56/100
## 43/43 - 1s - loss: 0.5007 - accuracy: 0.8536 - val_loss: 0.4798 - val_accuracy: 0.9912 - 788ms/epoch - 18ms/step
## Epoch 57/100
## 43/43 - 0s - loss: 0.4905 - accuracy: 0.8565 - val_loss: 0.4227 - val_accuracy: 1.0000 - 437ms/epoch - 10ms/step
## Epoch 58/100
## 43/43 - 0s - loss: 0.4857 - accuracy: 0.8491 - val_loss: 0.4140 - val_accuracy: 0.9941 - 485ms/epoch - 11ms/step
## Epoch 59/100
## 43/43 - 1s - loss: 0.4769 - accuracy: 0.8624 - val_loss: 0.3815 - val_accuracy: 0.9971 - 545ms/epoch - 13ms/step
## Epoch 60/100
## 43/43 - 0s - loss: 0.4703 - accuracy: 0.8617 - val_loss: 0.3585 - val_accuracy: 1.0000 - 436ms/epoch - 10ms/step
## Epoch 61/100
## 43/43 - 1s - loss: 0.4637 - accuracy: 0.8632 - val_loss: 0.4127 - val_accuracy: 0.9941 - 511ms/epoch - 12ms/step
## Epoch 62/100
## 43/43 - 0s - loss: 0.4555 - accuracy: 0.8669 - val_loss: 0.3559 - val_accuracy: 0.9971 - 435ms/epoch - 10ms/step
## Epoch 63/100
## 43/43 - 0s - loss: 0.4467 - accuracy: 0.8743 - val_loss: 0.4272 - val_accuracy: 0.9941 - 481ms/epoch - 11ms/step
## Epoch 64/100
## 43/43 - 0s - loss: 0.4427 - accuracy: 0.8750 - val_loss: 0.3177 - val_accuracy: 1.0000 - 481ms/epoch - 11ms/step
## Epoch 65/100
## 43/43 - 0s - loss: 0.4339 - accuracy: 0.8750 - val_loss: 0.3558 - val_accuracy: 0.9971 - 467ms/epoch - 11ms/step
## Epoch 66/100
## 43/43 - 0s - loss: 0.4285 - accuracy: 0.8772 - val_loss: 0.3552 - val_accuracy: 0.9941 - 431ms/epoch - 10ms/step
## Epoch 67/100
## 43/43 - 0s - loss: 0.4229 - accuracy: 0.8824 - val_loss: 0.3613 - val_accuracy: 0.9941 - 450ms/epoch - 10ms/step
## Epoch 68/100
## 43/43 - 0s - loss: 0.4184 - accuracy: 0.8780 - val_loss: 0.2762 - val_accuracy: 1.0000 - 484ms/epoch - 11ms/step
## Epoch 69/100
## 43/43 - 0s - loss: 0.4123 - accuracy: 0.8839 - val_loss: 0.2441 - val_accuracy: 1.0000 - 421ms/epoch - 10ms/step
## Epoch 70/100
## 43/43 - 0s - loss: 0.4078 - accuracy: 0.8854 - val_loss: 0.2895 - val_accuracy: 1.0000 - 464ms/epoch - 11ms/step
## Epoch 71/100
## 43/43 - 0s - loss: 0.3984 - accuracy: 0.8928 - val_loss: 0.2329 - val_accuracy: 1.0000 - 421ms/epoch - 10ms/step
## Epoch 72/100
## 43/43 - 1s - loss: 0.3965 - accuracy: 0.8831 - val_loss: 0.2784 - val_accuracy: 0.9971 - 529ms/epoch - 12ms/step
## Epoch 73/100
## 43/43 - 0s - loss: 0.3865 - accuracy: 0.8972 - val_loss: 0.2294 - val_accuracy: 1.0000 - 441ms/epoch - 10ms/step
## Epoch 74/100
## 43/43 - 1s - loss: 0.3831 - accuracy: 0.8861 - val_loss: 0.2497 - val_accuracy: 1.0000 - 509ms/epoch - 12ms/step
## Epoch 75/100
## 43/43 - 0s - loss: 0.3738 - accuracy: 0.8942 - val_loss: 0.2579 - val_accuracy: 0.9971 - 437ms/epoch - 10ms/step
## Epoch 76/100
## 43/43 - 1s - loss: 0.3721 - accuracy: 0.8950 - val_loss: 0.2343 - val_accuracy: 1.0000 - 515ms/epoch - 12ms/step
## Epoch 77/100
## 43/43 - 0s - loss: 0.3654 - accuracy: 0.9001 - val_loss: 0.1777 - val_accuracy: 1.0000 - 450ms/epoch - 10ms/step
## Epoch 78/100
## 43/43 - 0s - loss: 0.3605 - accuracy: 0.8979 - val_loss: 0.2033 - val_accuracy: 1.0000 - 485ms/epoch - 11ms/step
## Epoch 79/100
## 43/43 - 0s - loss: 0.3575 - accuracy: 0.8964 - val_loss: 0.2256 - val_accuracy: 0.9971 - 423ms/epoch - 10ms/step
## Epoch 80/100
## 43/43 - 0s - loss: 0.3504 - accuracy: 0.9024 - val_loss: 0.2033 - val_accuracy: 1.0000 - 460ms/epoch - 11ms/step
## Epoch 81/100
## 43/43 - 0s - loss: 0.3459 - accuracy: 0.9031 - val_loss: 0.1695 - val_accuracy: 1.0000 - 454ms/epoch - 11ms/step
## Epoch 82/100
## 43/43 - 0s - loss: 0.3411 - accuracy: 0.9001 - val_loss: 0.1796 - val_accuracy: 1.0000 - 452ms/epoch - 11ms/step
## Epoch 83/100
## 43/43 - 0s - loss: 0.3416 - accuracy: 0.9068 - val_loss: 0.2429 - val_accuracy: 0.9971 - 439ms/epoch - 10ms/step
## Epoch 84/100
## 43/43 - 0s - loss: 0.3347 - accuracy: 0.9068 - val_loss: 0.1893 - val_accuracy: 1.0000 - 439ms/epoch - 10ms/step
## Epoch 85/100
## 43/43 - 1s - loss: 0.3283 - accuracy: 0.9135 - val_loss: 0.1505 - val_accuracy: 1.0000 - 517ms/epoch - 12ms/step
## Epoch 86/100
## 43/43 - 0s - loss: 0.3253 - accuracy: 0.9083 - val_loss: 0.1840 - val_accuracy: 1.0000 - 434ms/epoch - 10ms/step
## Epoch 87/100
## 43/43 - 0s - loss: 0.3252 - accuracy: 0.9149 - val_loss: 0.1742 - val_accuracy: 1.0000 - 480ms/epoch - 11ms/step
## Epoch 88/100
## 43/43 - 0s - loss: 0.3190 - accuracy: 0.9090 - val_loss: 0.1597 - val_accuracy: 1.0000 - 435ms/epoch - 10ms/step
## Epoch 89/100
## 43/43 - 0s - loss: 0.3134 - accuracy: 0.9135 - val_loss: 0.1373 - val_accuracy: 1.0000 - 469ms/epoch - 11ms/step
## Epoch 90/100
## 43/43 - 0s - loss: 0.3091 - accuracy: 0.9172 - val_loss: 0.1597 - val_accuracy: 1.0000 - 462ms/epoch - 11ms/step
## Epoch 91/100
## 43/43 - 0s - loss: 0.3052 - accuracy: 0.9223 - val_loss: 0.1401 - val_accuracy: 1.0000 - 464ms/epoch - 11ms/step
## Epoch 92/100
## 43/43 - 0s - loss: 0.3019 - accuracy: 0.9186 - val_loss: 0.1341 - val_accuracy: 1.0000 - 437ms/epoch - 10ms/step
## Epoch 93/100
## 43/43 - 0s - loss: 0.2996 - accuracy: 0.9209 - val_loss: 0.1383 - val_accuracy: 1.0000 - 452ms/epoch - 11ms/step
## Epoch 94/100
## 43/43 - 0s - loss: 0.2939 - accuracy: 0.9238 - val_loss: 0.1274 - val_accuracy: 1.0000 - 455ms/epoch - 11ms/step
## Epoch 95/100
## 43/43 - 0s - loss: 0.2944 - accuracy: 0.9231 - val_loss: 0.1301 - val_accuracy: 1.0000 - 439ms/epoch - 10ms/step
## Epoch 96/100
## 43/43 - 0s - loss: 0.2886 - accuracy: 0.9231 - val_loss: 0.1424 - val_accuracy: 1.0000 - 471ms/epoch - 11ms/step
## Epoch 97/100
## 43/43 - 0s - loss: 0.2835 - accuracy: 0.9275 - val_loss: 0.1089 - val_accuracy: 1.0000 - 437ms/epoch - 10ms/step
## Epoch 98/100
## 43/43 - 0s - loss: 0.2807 - accuracy: 0.9216 - val_loss: 0.1276 - val_accuracy: 1.0000 - 485ms/epoch - 11ms/step
## Epoch 99/100
## 43/43 - 0s - loss: 0.2769 - accuracy: 0.9253 - val_loss: 0.1495 - val_accuracy: 1.0000 - 425ms/epoch - 10ms/step
## Epoch 100/100
## 43/43 - 0s - loss: 0.2745 - accuracy: 0.9283 - val_loss: 0.1045 - val_accuracy: 1.0000 - 468ms/epoch - 11ms/step
# Evaluasi Model dengan data Test
scores <- model %>% evaluate(test_X, test_y)
## 14/14 - 0s - loss: 0.4337 - accuracy: 0.8595 - 29ms/epoch - 2ms/step
## loss accuracy
## 0.4337184 0.8595238
Prediksi Model
# Prediksi dalam bentuk peluang
pred <- predict(model, test_X)
## 14/14 - 0s - 77ms/epoch - 6ms/step
## [,1] [,2] [,3] [,4]
## [1,] 2.600199e-04 0.041470755 0.0008786384 1.821479e-06
## [2,] 3.355191e-05 0.027656645 0.0100326305 2.552671e-04
## [3,] 3.119846e-05 0.009541338 0.0196684375 1.104266e-03
## [4,] 7.869052e-07 0.021669116 0.1793686002 1.236608e-04
## [5,] 1.727294e-04 0.397273123 0.2290972918 2.983263e-03
## [6,] 1.433076e-06 0.001120305 0.8257898092 1.943087e-04
## [,5] [,6] [,7]
## [1,] 2.364075e-05 0.009607756 0.94775736
## [2,] 4.443825e-05 0.080498412 0.88147908
## [3,] 2.204589e-02 0.135892496 0.81171626
## [4,] 2.529674e-04 0.537823141 0.26076177
## [5,] 4.198908e-06 0.135328367 0.23514108
## [6,] 2.564125e-03 0.086767666 0.08356237
# Prediksi Label
label_pred <- apply(pred, 1, which.max)
label_pred
## [1] 7 7 7 6 2 3 2 2 6 7 2 2 2 1 2 2 2 7 7 2 2 6 2 1 2 6 2 6 6 2 3
## [32] 7 2 2 6 2 2 7 4 1 7 7 2 6 3 2 4 6 3 2 2 6 2 3 2 2 5 2 7 2 2 6
## [63] 2 2 2 2 2 2 2 2 3 2 2 2 3 6 2 7 2 2 2 2 6 2 2 2 2 2 6 2 7 2 6
## [94] 2 2 2 1 2 2 2 2 2 6 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [125] 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6 6 6 6 6 6
## [156] 6 6 6 6 6 6 6 6 7 6 6 6 6 6 7 6 6 7 6 3 6 6 7 6 6 6 6 6 6 6 7
## [187] 6 6 6 6 7 6 6 6 7 6 6 6 7 7 7 6 7 7 7 6 7 7 7 6 7 7 7 7 7 3 7
## [218] 7 7 7 7 7 7 7 7 6 7 7 7 7 3 7 6 7 7 7 7 7 7 7 7 7 3 3 3 3 3 3
## [249] 3 3 3 3 3 3 3 7 3 4 4 7 3 3 7 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [280] 3 3 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4
## [311] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
## [342] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
## [373] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
## [404] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
# Nilai aktual
label_true <- as.integer(test$NObeyesdad)
label_true
## [1] 2 7 3 3 7 3 2 2 2 7 2 2 2 2 1 1 2 7 6 2 2 6 2 2 2 7 2 6 3 2 6
## [32] 7 2 7 7 2 2 3 4 2 3 3 2 6 3 2 4 6 2 2 2 2 2 7 1 2 3 1 7 2 2 2
## [63] 2 2 1 2 1 2 2 2 3 2 2 2 3 2 2 7 6 2 2 3 6 1 2 1 2 2 7 2 7 2 3
## [94] 2 2 2 1 2 2 2 2 6 2 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [125] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6 6 6 6 6 6
## [156] 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
## [187] 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
## [218] 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 3 3 3 3 3 3
## [249] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [280] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4
## [311] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
## [342] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
## [373] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
## [404] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
Evaluasi Model
confusionMatrix(as.factor(label_true), as.factor(label_pred))
## Confusion Matrix and Statistics
##
## Reference
## Prediction 1 2 3 4 5 6 7
## 1 45 9 0 0 0 0 0
## 2 3 47 1 0 0 5 1
## 3 0 1 55 3 1 3 7
## 4 0 0 0 59 0 0 0
## 5 0 0 0 0 64 0 0
## 6 0 2 2 0 0 46 8
## 7 0 2 3 0 0 8 45
##
## Overall Statistics
##
## Accuracy : 0.8595
## 95% CI : (0.8226, 0.8913)
## No Information Rate : 0.1548
## P-Value [Acc > NIR] : < 2.2e-16
##
## Kappa : 0.836
##
## Mcnemar's Test P-Value : NA
##
## Statistics by Class:
##
## Class: 1 Class: 2 Class: 3 Class: 4 Class: 5
## Sensitivity 0.9375 0.7705 0.9016 0.9516 0.9846
## Specificity 0.9758 0.9721 0.9582 1.0000 1.0000
## Pos Pred Value 0.8333 0.8246 0.7857 1.0000 1.0000
## Neg Pred Value 0.9918 0.9614 0.9829 0.9917 0.9972
## Prevalence 0.1143 0.1452 0.1452 0.1476 0.1548
## Detection Rate 0.1071 0.1119 0.1310 0.1405 0.1524
## Detection Prevalence 0.1286 0.1357 0.1667 0.1405 0.1524
## Balanced Accuracy 0.9567 0.8713 0.9299 0.9758 0.9923
## Class: 6 Class: 7
## Sensitivity 0.7419 0.7377
## Specificity 0.9665 0.9638
## Pos Pred Value 0.7931 0.7759
## Neg Pred Value 0.9558 0.9558
## Prevalence 0.1476 0.1452
## Detection Rate 0.1095 0.1071
## Detection Prevalence 0.1381 0.1381
## Balanced Accuracy 0.8542 0.8507
Model 2 (2 Hidden layers + dropout)
# Membuat model neural network dengan 2 hidden layer
model.2 <- keras_model_sequential() %>%
layer_dense(units = 128, activation = "relu", input_shape = ncol(train_X)) %>%
layer_dropout(0.2) %>%
layer_dense(units = 64, activation = "relu") %>%
layer_dropout(0.2) %>%
layer_dense(units = ncol(train_y), activation = "softmax")
# Mengkompilasi model
model.2 %>% compile(
loss = "categorical_crossentropy",
optimizer = "adam",
metrics = c("accuracy")
)
# Melakukan tahapan pelatihan model
history <- model.2 %>% fit(
train_X, train_y,
shuffle = T,
epochs = 100,
batch_size = 32,
validation_split = 0.2,
verbose = F # tidak menampilkan teks ouput pada setiap epoch
)
## Model: "sequential_1"
## ____________________________________________________________________
## Layer (type) Output Shape Param #
## ====================================================================
## dense_4 (Dense) (None, 128) 4096
## dropout_1 (Dropout) (None, 128) 0
## dense_3 (Dense) (None, 64) 8256
## dropout (Dropout) (None, 64) 0
## dense_2 (Dense) (None, 7) 455
## ====================================================================
## Total params: 12807 (50.03 KB)
## Trainable params: 12807 (50.03 KB)
## Non-trainable params: 0 (0.00 Byte)
## ____________________________________________________________________
# Mengevaluasi model menggunakan data uji
scores <- model.2 %>% evaluate(test_X, test_y)
## 14/14 - 0s - loss: 0.1789 - accuracy: 0.9452 - 28ms/epoch - 2ms/step
## loss accuracy
## 0.1789338 0.9452381
Prediksi Model
prediksi <- predict(model.2, test_X)
## 14/14 - 0s - 58ms/epoch - 4ms/step
## [,1] [,2] [,3] [,4]
## [1,] 2.781641e-06 7.648018e-02 1.656912e-06 2.369758e-13
## [2,] 1.719950e-13 6.854219e-06 7.988013e-05 1.259486e-08
## [3,] 2.617763e-13 1.486258e-06 6.610547e-01 1.319406e-03
## [4,] 2.783670e-15 3.844162e-06 7.695696e-01 5.143850e-06
## [5,] 7.483545e-11 3.629969e-04 3.730132e-02 2.529238e-05
## [6,] 5.533963e-16 4.902416e-09 9.932115e-01 2.370340e-06
## [,5] [,6] [,7]
## [1,] 4.250012e-11 0.0611035228 0.862411916
## [2,] 4.061309e-11 0.0040372848 0.995876014
## [3,] 8.388476e-03 0.0048459987 0.324389905
## [4,] 6.795684e-05 0.0272171292 0.203136325
## [5,] 1.137284e-06 0.0031451676 0.959164023
## [6,] 4.285622e-05 0.0001107281 0.006632475
Untuk menentukan kategori dengan peluang terbesar kita dapat menggunakan fungsi which.max
yang dikombinasikan dengan fungsi apply
.
label_pred <- apply(prediksi, 1, which.max)
label_pred
## [1] 7 7 3 3 7 3 2 2 6 7 2 2 2 1 2 1 2 7 7 2 2 6 2 1 2 7 2 6 3 2 2
## [32] 7 2 7 7 2 2 7 4 1 7 3 2 6 3 2 4 2 6 2 2 2 2 3 1 2 3 1 7 2 2 2
## [63] 2 2 2 2 2 2 2 2 3 2 2 2 3 2 2 7 2 2 2 7 6 2 2 2 2 2 7 2 7 2 3
## [94] 2 2 2 1 2 2 2 2 6 2 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [125] 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6 6 6 6 6 6
## [156] 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
## [187] 6 6 6 6 6 6 6 6 7 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 3 7
## [218] 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 3 3 3 3 3 3
## [249] 3 3 3 3 3 3 3 7 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [280] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4
## [311] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
## [342] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
## [373] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
## [404] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
label_true <- as.integer(test$NObeyesdad)
label_true
## [1] 2 7 3 3 7 3 2 2 2 7 2 2 2 2 1 1 2 7 6 2 2 6 2 2 2 7 2 6 3 2 6
## [32] 7 2 7 7 2 2 3 4 2 3 3 2 6 3 2 4 6 2 2 2 2 2 7 1 2 3 1 7 2 2 2
## [63] 2 2 1 2 1 2 2 2 3 2 2 2 3 2 2 7 6 2 2 3 6 1 2 1 2 2 7 2 7 2 3
## [94] 2 2 2 1 2 2 2 2 6 2 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [125] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6 6 6 6 6 6
## [156] 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
## [187] 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
## [218] 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 3 3 3 3 3 3
## [249] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [280] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4
## [311] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
## [342] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
## [373] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
## [404] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
Evaluasi Model
confusionMatrix(as.factor(label_true), as.factor(label_pred))
## Confusion Matrix and Statistics
##
## Reference
## Prediction 1 2 3 4 5 6 7
## 1 48 6 0 0 0 0 0
## 2 3 51 0 0 0 2 1
## 3 0 0 66 0 0 0 4
## 4 0 0 0 59 0 0 0
## 5 0 0 0 0 64 0 0
## 6 0 3 0 0 0 53 2
## 7 0 0 2 0 0 0 56
##
## Overall Statistics
##
## Accuracy : 0.9452
## 95% CI : (0.919, 0.965)
## No Information Rate : 0.1619
## P-Value [Acc > NIR] : < 2.2e-16
##
## Kappa : 0.936
##
## Mcnemar's Test P-Value : NA
##
## Statistics by Class:
##
## Class: 1 Class: 2 Class: 3 Class: 4 Class: 5
## Sensitivity 0.9412 0.8500 0.9706 1.0000 1.0000
## Specificity 0.9837 0.9833 0.9886 1.0000 1.0000
## Pos Pred Value 0.8889 0.8947 0.9429 1.0000 1.0000
## Neg Pred Value 0.9918 0.9752 0.9943 1.0000 1.0000
## Prevalence 0.1214 0.1429 0.1619 0.1405 0.1524
## Detection Rate 0.1143 0.1214 0.1571 0.1405 0.1524
## Detection Prevalence 0.1286 0.1357 0.1667 0.1405 0.1524
## Balanced Accuracy 0.9625 0.9167 0.9796 1.0000 1.0000
## Class: 6 Class: 7
## Sensitivity 0.9636 0.8889
## Specificity 0.9863 0.9944
## Pos Pred Value 0.9138 0.9655
## Neg Pred Value 0.9945 0.9807
## Prevalence 0.1310 0.1500
## Detection Rate 0.1262 0.1333
## Detection Prevalence 0.1381 0.1381
## Balanced Accuracy 0.9750 0.9416
Save Model
# Menyimpan model dalam format HDF5
model.2 %>% save_model_hdf5("model_nn.h5")
# Memuat model dari file HDF5
model.2 <- load_model_hdf5("model_nn.h5")
print(model)
## Model: "sequential"
## ____________________________________________________________________
## Layer (type) Output Shape Param #
## ====================================================================
## dense_1 (Dense) (None, 64) 2048
## dense (Dense) (None, 7) 455
## ====================================================================
## Total params: 2503 (9.78 KB)
## Trainable params: 2503 (9.78 KB)
## Non-trainable params: 0 (0.00 Byte)
## ____________________________________________________________________
Model 3 (2 hidden layer + dropout + callback)
# Multiclass Model dengan 2 hidden layers + dropout + checkpoint + earlyStopping
model.3 <- keras_model_sequential() %>%
layer_dense(units = 120, activation = "relu", input_shape = ncol(train_X)) %>%
layer_dropout(0.2) %>%
layer_dense(units = 100, activation = "relu") %>%
layer_dropout(0.1) %>%
layer_dense(units = ncol(train_y), activation = "softmax")
# menentukan nama dan path file untuk penyimpanan model
filepath <- "model_check_x.keras"
# mengatur kriteria checkpoint
# simpan model jika memperoleh skor terbaik
checkpoint <- callback_model_checkpoint(
filepath=filepath,
monitor="val_accuracy",
save_best_only=TRUE,
mode="max",
verbose=1,
)
# mengatur kondisi untuk early stopping
early_stopping <- callback_early_stopping(
monitor="val_accuracy",
patience=30,
verbose=1,
)
# kompilasi model
model.3 %>% compile(
loss = "categorical_crossentropy",
optimizer = "adam",
metrics = c("accuracy")
)
# melatih model
history <- model.3 %>% fit(
train_X, train_y,
shuffle = T,
epochs = 200,
batch_size = 64,
# validation_split = 0.2, # atau
validation_data = list(test_X, test_y),
callbacks=list(checkpoint, early_stopping),
)
## Epoch 1/200
##
## Epoch 1: val_accuracy improved from -inf to 0.43810, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 2s - loss: 1.8413 - accuracy: 0.2927 - val_loss: 1.6845 - val_accuracy: 0.4381 - 2s/epoch - 62ms/step
## Epoch 2/200
##
## Epoch 2: val_accuracy improved from 0.43810 to 0.49048, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 1.5715 - accuracy: 0.4506 - val_loss: 1.4463 - val_accuracy: 0.4905 - 598ms/epoch - 22ms/step
## Epoch 3/200
##
## Epoch 3: val_accuracy improved from 0.49048 to 0.52143, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 1.3430 - accuracy: 0.5151 - val_loss: 1.2858 - val_accuracy: 0.5214 - 562ms/epoch - 21ms/step
## Epoch 4/200
##
## Epoch 4: val_accuracy improved from 0.52143 to 0.53810, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 1.1884 - accuracy: 0.5713 - val_loss: 1.1899 - val_accuracy: 0.5381 - 682ms/epoch - 25ms/step
## Epoch 5/200
##
## Epoch 5: val_accuracy improved from 0.53810 to 0.56429, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 1.1095 - accuracy: 0.5795 - val_loss: 1.1237 - val_accuracy: 0.5643 - 471ms/epoch - 17ms/step
## Epoch 6/200
##
## Epoch 6: val_accuracy improved from 0.56429 to 0.59048, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 1.0375 - accuracy: 0.6168 - val_loss: 1.0631 - val_accuracy: 0.5905 - 509ms/epoch - 19ms/step
## Epoch 7/200
##
## Epoch 7: val_accuracy improved from 0.59048 to 0.61905, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.9744 - accuracy: 0.6410 - val_loss: 1.0093 - val_accuracy: 0.6190 - 499ms/epoch - 18ms/step
## Epoch 8/200
##
## Epoch 8: val_accuracy improved from 0.61905 to 0.63095, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.9152 - accuracy: 0.6600 - val_loss: 0.9641 - val_accuracy: 0.6310 - 541ms/epoch - 20ms/step
## Epoch 9/200
##
## Epoch 9: val_accuracy improved from 0.63095 to 0.67857, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.8737 - accuracy: 0.6783 - val_loss: 0.9113 - val_accuracy: 0.6786 - 482ms/epoch - 18ms/step
## Epoch 10/200
##
## Epoch 10: val_accuracy improved from 0.67857 to 0.69762, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.8192 - accuracy: 0.7067 - val_loss: 0.8677 - val_accuracy: 0.6976 - 511ms/epoch - 19ms/step
## Epoch 11/200
##
## Epoch 11: val_accuracy improved from 0.69762 to 0.71190, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.7848 - accuracy: 0.7150 - val_loss: 0.8285 - val_accuracy: 0.7119 - 482ms/epoch - 18ms/step
## Epoch 12/200
##
## Epoch 12: val_accuracy improved from 0.71190 to 0.74048, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.7452 - accuracy: 0.7327 - val_loss: 0.7932 - val_accuracy: 0.7405 - 510ms/epoch - 19ms/step
## Epoch 13/200
##
## Epoch 13: val_accuracy did not improve from 0.74048
## 27/27 - 0s - loss: 0.7214 - accuracy: 0.7357 - val_loss: 0.7681 - val_accuracy: 0.7262 - 436ms/epoch - 16ms/step
## Epoch 14/200
##
## Epoch 14: val_accuracy improved from 0.74048 to 0.75714, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.6915 - accuracy: 0.7439 - val_loss: 0.7327 - val_accuracy: 0.7571 - 540ms/epoch - 20ms/step
## Epoch 15/200
##
## Epoch 15: val_accuracy did not improve from 0.75714
## 27/27 - 0s - loss: 0.6606 - accuracy: 0.7664 - val_loss: 0.7248 - val_accuracy: 0.7310 - 438ms/epoch - 16ms/step
## Epoch 16/200
##
## Epoch 16: val_accuracy did not improve from 0.75714
## 27/27 - 0s - loss: 0.6376 - accuracy: 0.7747 - val_loss: 0.6777 - val_accuracy: 0.7571 - 482ms/epoch - 18ms/step
## Epoch 17/200
##
## Epoch 17: val_accuracy improved from 0.75714 to 0.75952, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.6045 - accuracy: 0.7800 - val_loss: 0.6583 - val_accuracy: 0.7595 - 479ms/epoch - 18ms/step
## Epoch 18/200
##
## Epoch 18: val_accuracy improved from 0.75952 to 0.76190, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.5835 - accuracy: 0.7942 - val_loss: 0.6492 - val_accuracy: 0.7619 - 527ms/epoch - 20ms/step
## Epoch 19/200
##
## Epoch 19: val_accuracy improved from 0.76190 to 0.79524, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.5701 - accuracy: 0.7978 - val_loss: 0.6106 - val_accuracy: 0.7952 - 470ms/epoch - 17ms/step
## Epoch 20/200
##
## Epoch 20: val_accuracy did not improve from 0.79524
## 27/27 - 1s - loss: 0.5385 - accuracy: 0.8025 - val_loss: 0.5992 - val_accuracy: 0.7905 - 611ms/epoch - 23ms/step
## Epoch 21/200
##
## Epoch 21: val_accuracy did not improve from 0.79524
## 27/27 - 1s - loss: 0.5277 - accuracy: 0.8179 - val_loss: 0.5797 - val_accuracy: 0.7810 - 509ms/epoch - 19ms/step
## Epoch 22/200
##
## Epoch 22: val_accuracy did not improve from 0.79524
## 27/27 - 1s - loss: 0.5092 - accuracy: 0.8102 - val_loss: 0.5608 - val_accuracy: 0.7810 - 544ms/epoch - 20ms/step
## Epoch 23/200
##
## Epoch 23: val_accuracy improved from 0.79524 to 0.80238, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.4966 - accuracy: 0.8232 - val_loss: 0.5361 - val_accuracy: 0.8024 - 542ms/epoch - 20ms/step
## Epoch 24/200
##
## Epoch 24: val_accuracy improved from 0.80238 to 0.82619, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.4779 - accuracy: 0.8185 - val_loss: 0.5234 - val_accuracy: 0.8262 - 494ms/epoch - 18ms/step
## Epoch 25/200
##
## Epoch 25: val_accuracy did not improve from 0.82619
## 27/27 - 0s - loss: 0.4471 - accuracy: 0.8350 - val_loss: 0.5115 - val_accuracy: 0.8119 - 438ms/epoch - 16ms/step
## Epoch 26/200
##
## Epoch 26: val_accuracy did not improve from 0.82619
## 27/27 - 0s - loss: 0.4392 - accuracy: 0.8415 - val_loss: 0.5271 - val_accuracy: 0.7905 - 433ms/epoch - 16ms/step
## Epoch 27/200
##
## Epoch 27: val_accuracy improved from 0.82619 to 0.83095, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.4390 - accuracy: 0.8409 - val_loss: 0.4738 - val_accuracy: 0.8310 - 469ms/epoch - 17ms/step
## Epoch 28/200
##
## Epoch 28: val_accuracy improved from 0.83095 to 0.83333, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.4161 - accuracy: 0.8569 - val_loss: 0.4664 - val_accuracy: 0.8333 - 510ms/epoch - 19ms/step
## Epoch 29/200
##
## Epoch 29: val_accuracy improved from 0.83333 to 0.84048, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.3926 - accuracy: 0.8616 - val_loss: 0.4607 - val_accuracy: 0.8405 - 467ms/epoch - 17ms/step
## Epoch 30/200
##
## Epoch 30: val_accuracy did not improve from 0.84048
## 27/27 - 0s - loss: 0.3870 - accuracy: 0.8658 - val_loss: 0.4571 - val_accuracy: 0.8262 - 461ms/epoch - 17ms/step
## Epoch 31/200
##
## Epoch 31: val_accuracy improved from 0.84048 to 0.85476, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.3693 - accuracy: 0.8788 - val_loss: 0.4212 - val_accuracy: 0.8548 - 495ms/epoch - 18ms/step
## Epoch 32/200
##
## Epoch 32: val_accuracy did not improve from 0.85476
## 27/27 - 1s - loss: 0.3682 - accuracy: 0.8770 - val_loss: 0.4195 - val_accuracy: 0.8381 - 589ms/epoch - 22ms/step
## Epoch 33/200
##
## Epoch 33: val_accuracy did not improve from 0.85476
## 27/27 - 1s - loss: 0.3595 - accuracy: 0.8764 - val_loss: 0.4162 - val_accuracy: 0.8405 - 563ms/epoch - 21ms/step
## Epoch 34/200
##
## Epoch 34: val_accuracy improved from 0.85476 to 0.86190, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.3493 - accuracy: 0.8764 - val_loss: 0.3922 - val_accuracy: 0.8619 - 495ms/epoch - 18ms/step
## Epoch 35/200
##
## Epoch 35: val_accuracy did not improve from 0.86190
## 27/27 - 0s - loss: 0.3418 - accuracy: 0.8776 - val_loss: 0.3917 - val_accuracy: 0.8595 - 431ms/epoch - 16ms/step
## Epoch 36/200
##
## Epoch 36: val_accuracy did not improve from 0.86190
## 27/27 - 0s - loss: 0.3312 - accuracy: 0.8811 - val_loss: 0.4052 - val_accuracy: 0.8476 - 447ms/epoch - 17ms/step
## Epoch 37/200
##
## Epoch 37: val_accuracy did not improve from 0.86190
## 27/27 - 0s - loss: 0.3143 - accuracy: 0.8900 - val_loss: 0.3805 - val_accuracy: 0.8595 - 420ms/epoch - 16ms/step
## Epoch 38/200
##
## Epoch 38: val_accuracy did not improve from 0.86190
## 27/27 - 0s - loss: 0.3090 - accuracy: 0.8924 - val_loss: 0.3678 - val_accuracy: 0.8619 - 452ms/epoch - 17ms/step
## Epoch 39/200
##
## Epoch 39: val_accuracy improved from 0.86190 to 0.86905, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.3006 - accuracy: 0.8965 - val_loss: 0.3527 - val_accuracy: 0.8690 - 496ms/epoch - 18ms/step
## Epoch 40/200
##
## Epoch 40: val_accuracy did not improve from 0.86905
## 27/27 - 0s - loss: 0.2961 - accuracy: 0.8900 - val_loss: 0.3364 - val_accuracy: 0.8643 - 497ms/epoch - 18ms/step
## Epoch 41/200
##
## Epoch 41: val_accuracy improved from 0.86905 to 0.87857, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.2839 - accuracy: 0.8965 - val_loss: 0.3308 - val_accuracy: 0.8786 - 467ms/epoch - 17ms/step
## Epoch 42/200
##
## Epoch 42: val_accuracy improved from 0.87857 to 0.88095, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.2802 - accuracy: 0.8995 - val_loss: 0.3180 - val_accuracy: 0.8810 - 454ms/epoch - 17ms/step
## Epoch 43/200
##
## Epoch 43: val_accuracy did not improve from 0.88095
## 27/27 - 0s - loss: 0.2908 - accuracy: 0.8959 - val_loss: 0.3286 - val_accuracy: 0.8810 - 422ms/epoch - 16ms/step
## Epoch 44/200
##
## Epoch 44: val_accuracy did not improve from 0.88095
## 27/27 - 0s - loss: 0.2736 - accuracy: 0.8995 - val_loss: 0.3292 - val_accuracy: 0.8714 - 436ms/epoch - 16ms/step
## Epoch 45/200
##
## Epoch 45: val_accuracy did not improve from 0.88095
## 27/27 - 0s - loss: 0.2552 - accuracy: 0.9095 - val_loss: 0.3227 - val_accuracy: 0.8667 - 482ms/epoch - 18ms/step
## Epoch 46/200
##
## Epoch 46: val_accuracy improved from 0.88095 to 0.88333, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.2475 - accuracy: 0.9184 - val_loss: 0.3123 - val_accuracy: 0.8833 - 500ms/epoch - 19ms/step
## Epoch 47/200
##
## Epoch 47: val_accuracy improved from 0.88333 to 0.88810, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.2617 - accuracy: 0.9066 - val_loss: 0.2960 - val_accuracy: 0.8881 - 483ms/epoch - 18ms/step
## Epoch 48/200
##
## Epoch 48: val_accuracy improved from 0.88810 to 0.89286, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.2333 - accuracy: 0.9225 - val_loss: 0.2894 - val_accuracy: 0.8929 - 484ms/epoch - 18ms/step
## Epoch 49/200
##
## Epoch 49: val_accuracy did not improve from 0.89286
## 27/27 - 0s - loss: 0.2342 - accuracy: 0.9219 - val_loss: 0.2865 - val_accuracy: 0.8905 - 453ms/epoch - 17ms/step
## Epoch 50/200
##
## Epoch 50: val_accuracy did not improve from 0.89286
## 27/27 - 0s - loss: 0.2232 - accuracy: 0.9267 - val_loss: 0.2836 - val_accuracy: 0.8905 - 433ms/epoch - 16ms/step
## Epoch 51/200
##
## Epoch 51: val_accuracy improved from 0.89286 to 0.89762, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.2317 - accuracy: 0.9202 - val_loss: 0.2737 - val_accuracy: 0.8976 - 478ms/epoch - 18ms/step
## Epoch 52/200
##
## Epoch 52: val_accuracy did not improve from 0.89762
## 27/27 - 0s - loss: 0.2199 - accuracy: 0.9279 - val_loss: 0.2789 - val_accuracy: 0.8905 - 436ms/epoch - 16ms/step
## Epoch 53/200
##
## Epoch 53: val_accuracy did not improve from 0.89762
## 27/27 - 0s - loss: 0.2104 - accuracy: 0.9243 - val_loss: 0.2652 - val_accuracy: 0.8976 - 466ms/epoch - 17ms/step
## Epoch 54/200
##
## Epoch 54: val_accuracy improved from 0.89762 to 0.90952, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.2062 - accuracy: 0.9290 - val_loss: 0.2619 - val_accuracy: 0.9095 - 466ms/epoch - 17ms/step
## Epoch 55/200
##
## Epoch 55: val_accuracy did not improve from 0.90952
## 27/27 - 0s - loss: 0.1974 - accuracy: 0.9367 - val_loss: 0.2577 - val_accuracy: 0.8976 - 454ms/epoch - 17ms/step
## Epoch 56/200
##
## Epoch 56: val_accuracy did not improve from 0.90952
## 27/27 - 0s - loss: 0.2189 - accuracy: 0.9225 - val_loss: 0.2566 - val_accuracy: 0.9048 - 422ms/epoch - 16ms/step
## Epoch 57/200
##
## Epoch 57: val_accuracy did not improve from 0.90952
## 27/27 - 0s - loss: 0.1920 - accuracy: 0.9320 - val_loss: 0.2576 - val_accuracy: 0.9048 - 418ms/epoch - 15ms/step
## Epoch 58/200
##
## Epoch 58: val_accuracy improved from 0.90952 to 0.91429, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.1872 - accuracy: 0.9326 - val_loss: 0.2482 - val_accuracy: 0.9143 - 468ms/epoch - 17ms/step
## Epoch 59/200
##
## Epoch 59: val_accuracy did not improve from 0.91429
## 27/27 - 0s - loss: 0.1857 - accuracy: 0.9373 - val_loss: 0.2507 - val_accuracy: 0.9095 - 419ms/epoch - 16ms/step
## Epoch 60/200
##
## Epoch 60: val_accuracy did not improve from 0.91429
## 27/27 - 0s - loss: 0.1990 - accuracy: 0.9355 - val_loss: 0.2460 - val_accuracy: 0.9048 - 433ms/epoch - 16ms/step
## Epoch 61/200
##
## Epoch 61: val_accuracy did not improve from 0.91429
## 27/27 - 0s - loss: 0.1869 - accuracy: 0.9314 - val_loss: 0.2391 - val_accuracy: 0.9024 - 416ms/epoch - 15ms/step
## Epoch 62/200
##
## Epoch 62: val_accuracy did not improve from 0.91429
## 27/27 - 0s - loss: 0.1810 - accuracy: 0.9326 - val_loss: 0.2439 - val_accuracy: 0.9143 - 434ms/epoch - 16ms/step
## Epoch 63/200
##
## Epoch 63: val_accuracy did not improve from 0.91429
## 27/27 - 0s - loss: 0.1916 - accuracy: 0.9302 - val_loss: 0.2291 - val_accuracy: 0.9119 - 450ms/epoch - 17ms/step
## Epoch 64/200
##
## Epoch 64: val_accuracy did not improve from 0.91429
## 27/27 - 1s - loss: 0.1768 - accuracy: 0.9349 - val_loss: 0.2362 - val_accuracy: 0.9000 - 763ms/epoch - 28ms/step
## Epoch 65/200
##
## Epoch 65: val_accuracy did not improve from 0.91429
## 27/27 - 0s - loss: 0.1655 - accuracy: 0.9480 - val_loss: 0.2317 - val_accuracy: 0.9095 - 420ms/epoch - 16ms/step
## Epoch 66/200
##
## Epoch 66: val_accuracy improved from 0.91429 to 0.92381, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.1688 - accuracy: 0.9361 - val_loss: 0.2345 - val_accuracy: 0.9238 - 497ms/epoch - 18ms/step
## Epoch 67/200
##
## Epoch 67: val_accuracy improved from 0.92381 to 0.92619, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.1666 - accuracy: 0.9509 - val_loss: 0.2296 - val_accuracy: 0.9262 - 465ms/epoch - 17ms/step
## Epoch 68/200
##
## Epoch 68: val_accuracy did not improve from 0.92619
## 27/27 - 0s - loss: 0.1571 - accuracy: 0.9468 - val_loss: 0.2290 - val_accuracy: 0.9190 - 434ms/epoch - 16ms/step
## Epoch 69/200
##
## Epoch 69: val_accuracy did not improve from 0.92619
## 27/27 - 0s - loss: 0.1433 - accuracy: 0.9503 - val_loss: 0.2255 - val_accuracy: 0.9190 - 418ms/epoch - 15ms/step
## Epoch 70/200
##
## Epoch 70: val_accuracy did not improve from 0.92619
## 27/27 - 0s - loss: 0.1562 - accuracy: 0.9474 - val_loss: 0.2267 - val_accuracy: 0.9167 - 414ms/epoch - 15ms/step
## Epoch 71/200
##
## Epoch 71: val_accuracy did not improve from 0.92619
## 27/27 - 0s - loss: 0.1675 - accuracy: 0.9379 - val_loss: 0.2235 - val_accuracy: 0.9143 - 437ms/epoch - 16ms/step
## Epoch 72/200
##
## Epoch 72: val_accuracy improved from 0.92619 to 0.92857, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.1422 - accuracy: 0.9545 - val_loss: 0.2239 - val_accuracy: 0.9286 - 463ms/epoch - 17ms/step
## Epoch 73/200
##
## Epoch 73: val_accuracy did not improve from 0.92857
## 27/27 - 0s - loss: 0.1486 - accuracy: 0.9521 - val_loss: 0.2197 - val_accuracy: 0.9262 - 433ms/epoch - 16ms/step
## Epoch 74/200
##
## Epoch 74: val_accuracy did not improve from 0.92857
## 27/27 - 0s - loss: 0.1417 - accuracy: 0.9515 - val_loss: 0.2300 - val_accuracy: 0.9095 - 421ms/epoch - 16ms/step
## Epoch 75/200
##
## Epoch 75: val_accuracy did not improve from 0.92857
## 27/27 - 0s - loss: 0.1375 - accuracy: 0.9545 - val_loss: 0.2185 - val_accuracy: 0.9190 - 439ms/epoch - 16ms/step
## Epoch 76/200
##
## Epoch 76: val_accuracy did not improve from 0.92857
## 27/27 - 0s - loss: 0.1384 - accuracy: 0.9509 - val_loss: 0.2132 - val_accuracy: 0.9262 - 447ms/epoch - 17ms/step
## Epoch 77/200
##
## Epoch 77: val_accuracy did not improve from 0.92857
## 27/27 - 0s - loss: 0.1350 - accuracy: 0.9539 - val_loss: 0.2103 - val_accuracy: 0.9214 - 419ms/epoch - 16ms/step
## Epoch 78/200
##
## Epoch 78: val_accuracy did not improve from 0.92857
## 27/27 - 0s - loss: 0.1403 - accuracy: 0.9562 - val_loss: 0.2080 - val_accuracy: 0.9143 - 435ms/epoch - 16ms/step
## Epoch 79/200
##
## Epoch 79: val_accuracy improved from 0.92857 to 0.93095, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.1310 - accuracy: 0.9586 - val_loss: 0.2038 - val_accuracy: 0.9310 - 450ms/epoch - 17ms/step
## Epoch 80/200
##
## Epoch 80: val_accuracy did not improve from 0.93095
## 27/27 - 0s - loss: 0.1303 - accuracy: 0.9556 - val_loss: 0.2172 - val_accuracy: 0.9167 - 436ms/epoch - 16ms/step
## Epoch 81/200
##
## Epoch 81: val_accuracy did not improve from 0.93095
## 27/27 - 0s - loss: 0.1333 - accuracy: 0.9556 - val_loss: 0.2052 - val_accuracy: 0.9262 - 435ms/epoch - 16ms/step
## Epoch 82/200
##
## Epoch 82: val_accuracy did not improve from 0.93095
## 27/27 - 0s - loss: 0.1255 - accuracy: 0.9604 - val_loss: 0.2140 - val_accuracy: 0.9167 - 451ms/epoch - 17ms/step
## Epoch 83/200
##
## Epoch 83: val_accuracy did not improve from 0.93095
## 27/27 - 0s - loss: 0.1164 - accuracy: 0.9627 - val_loss: 0.2049 - val_accuracy: 0.9238 - 419ms/epoch - 16ms/step
## Epoch 84/200
##
## Epoch 84: val_accuracy did not improve from 0.93095
## 27/27 - 0s - loss: 0.1145 - accuracy: 0.9592 - val_loss: 0.2026 - val_accuracy: 0.9262 - 434ms/epoch - 16ms/step
## Epoch 85/200
##
## Epoch 85: val_accuracy improved from 0.93095 to 0.94048, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 0s - loss: 0.1242 - accuracy: 0.9562 - val_loss: 0.1977 - val_accuracy: 0.9405 - 467ms/epoch - 17ms/step
## Epoch 86/200
##
## Epoch 86: val_accuracy did not improve from 0.94048
## 27/27 - 0s - loss: 0.1256 - accuracy: 0.9580 - val_loss: 0.1952 - val_accuracy: 0.9357 - 433ms/epoch - 16ms/step
## Epoch 87/200
##
## Epoch 87: val_accuracy did not improve from 0.94048
## 27/27 - 0s - loss: 0.1233 - accuracy: 0.9539 - val_loss: 0.2058 - val_accuracy: 0.9333 - 434ms/epoch - 16ms/step
## Epoch 88/200
##
## Epoch 88: val_accuracy did not improve from 0.94048
## 27/27 - 0s - loss: 0.1219 - accuracy: 0.9545 - val_loss: 0.2066 - val_accuracy: 0.9381 - 426ms/epoch - 16ms/step
## Epoch 89/200
##
## Epoch 89: val_accuracy did not improve from 0.94048
## 27/27 - 0s - loss: 0.1151 - accuracy: 0.9604 - val_loss: 0.2105 - val_accuracy: 0.9310 - 422ms/epoch - 16ms/step
## Epoch 90/200
##
## Epoch 90: val_accuracy did not improve from 0.94048
## 27/27 - 0s - loss: 0.1234 - accuracy: 0.9598 - val_loss: 0.2179 - val_accuracy: 0.9119 - 438ms/epoch - 16ms/step
## Epoch 91/200
##
## Epoch 91: val_accuracy did not improve from 0.94048
## 27/27 - 0s - loss: 0.1203 - accuracy: 0.9574 - val_loss: 0.1869 - val_accuracy: 0.9333 - 432ms/epoch - 16ms/step
## Epoch 92/200
##
## Epoch 92: val_accuracy did not improve from 0.94048
## 27/27 - 0s - loss: 0.0990 - accuracy: 0.9687 - val_loss: 0.2017 - val_accuracy: 0.9262 - 419ms/epoch - 16ms/step
## Epoch 93/200
##
## Epoch 93: val_accuracy did not improve from 0.94048
## 27/27 - 0s - loss: 0.0912 - accuracy: 0.9704 - val_loss: 0.1925 - val_accuracy: 0.9262 - 418ms/epoch - 15ms/step
## Epoch 94/200
##
## Epoch 94: val_accuracy did not improve from 0.94048
## 27/27 - 0s - loss: 0.1069 - accuracy: 0.9663 - val_loss: 0.1933 - val_accuracy: 0.9381 - 434ms/epoch - 16ms/step
## Epoch 95/200
##
## Epoch 95: val_accuracy did not improve from 0.94048
## 27/27 - 0s - loss: 0.1073 - accuracy: 0.9622 - val_loss: 0.2000 - val_accuracy: 0.9286 - 453ms/epoch - 17ms/step
## Epoch 96/200
##
## Epoch 96: val_accuracy did not improve from 0.94048
## 27/27 - 0s - loss: 0.1036 - accuracy: 0.9669 - val_loss: 0.1951 - val_accuracy: 0.9357 - 430ms/epoch - 16ms/step
## Epoch 97/200
##
## Epoch 97: val_accuracy did not improve from 0.94048
## 27/27 - 1s - loss: 0.1036 - accuracy: 0.9633 - val_loss: 0.1896 - val_accuracy: 0.9405 - 544ms/epoch - 20ms/step
## Epoch 98/200
##
## Epoch 98: val_accuracy did not improve from 0.94048
## 27/27 - 1s - loss: 0.1083 - accuracy: 0.9616 - val_loss: 0.1960 - val_accuracy: 0.9310 - 905ms/epoch - 34ms/step
## Epoch 99/200
##
## Epoch 99: val_accuracy did not improve from 0.94048
## 27/27 - 1s - loss: 0.1027 - accuracy: 0.9698 - val_loss: 0.1908 - val_accuracy: 0.9310 - 801ms/epoch - 30ms/step
## Epoch 100/200
##
## Epoch 100: val_accuracy did not improve from 0.94048
## 27/27 - 1s - loss: 0.0979 - accuracy: 0.9681 - val_loss: 0.2104 - val_accuracy: 0.9190 - 840ms/epoch - 31ms/step
## Epoch 101/200
##
## Epoch 101: val_accuracy did not improve from 0.94048
## 27/27 - 1s - loss: 0.0949 - accuracy: 0.9663 - val_loss: 0.1939 - val_accuracy: 0.9310 - 813ms/epoch - 30ms/step
## Epoch 102/200
##
## Epoch 102: val_accuracy did not improve from 0.94048
## 27/27 - 1s - loss: 0.1039 - accuracy: 0.9622 - val_loss: 0.1862 - val_accuracy: 0.9357 - 826ms/epoch - 31ms/step
## Epoch 103/200
##
## Epoch 103: val_accuracy did not improve from 0.94048
## 27/27 - 1s - loss: 0.0974 - accuracy: 0.9687 - val_loss: 0.1898 - val_accuracy: 0.9238 - 822ms/epoch - 30ms/step
## Epoch 104/200
##
## Epoch 104: val_accuracy did not improve from 0.94048
## 27/27 - 1s - loss: 0.1015 - accuracy: 0.9651 - val_loss: 0.1826 - val_accuracy: 0.9333 - 808ms/epoch - 30ms/step
## Epoch 105/200
##
## Epoch 105: val_accuracy did not improve from 0.94048
## 27/27 - 1s - loss: 0.0939 - accuracy: 0.9722 - val_loss: 0.1857 - val_accuracy: 0.9310 - 802ms/epoch - 30ms/step
## Epoch 106/200
##
## Epoch 106: val_accuracy did not improve from 0.94048
## 27/27 - 1s - loss: 0.0999 - accuracy: 0.9663 - val_loss: 0.2104 - val_accuracy: 0.9286 - 809ms/epoch - 30ms/step
## Epoch 107/200
##
## Epoch 107: val_accuracy improved from 0.94048 to 0.94762, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.0965 - accuracy: 0.9675 - val_loss: 0.1708 - val_accuracy: 0.9476 - 793ms/epoch - 29ms/step
## Epoch 108/200
##
## Epoch 108: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0906 - accuracy: 0.9716 - val_loss: 0.1899 - val_accuracy: 0.9333 - 828ms/epoch - 31ms/step
## Epoch 109/200
##
## Epoch 109: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0889 - accuracy: 0.9698 - val_loss: 0.1725 - val_accuracy: 0.9405 - 780ms/epoch - 29ms/step
## Epoch 110/200
##
## Epoch 110: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0947 - accuracy: 0.9651 - val_loss: 0.1856 - val_accuracy: 0.9357 - 847ms/epoch - 31ms/step
## Epoch 111/200
##
## Epoch 111: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0871 - accuracy: 0.9710 - val_loss: 0.1721 - val_accuracy: 0.9381 - 807ms/epoch - 30ms/step
## Epoch 112/200
##
## Epoch 112: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0866 - accuracy: 0.9698 - val_loss: 0.1876 - val_accuracy: 0.9238 - 762ms/epoch - 28ms/step
## Epoch 113/200
##
## Epoch 113: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0867 - accuracy: 0.9710 - val_loss: 0.1893 - val_accuracy: 0.9333 - 774ms/epoch - 29ms/step
## Epoch 114/200
##
## Epoch 114: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0859 - accuracy: 0.9675 - val_loss: 0.1831 - val_accuracy: 0.9476 - 767ms/epoch - 28ms/step
## Epoch 115/200
##
## Epoch 115: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0941 - accuracy: 0.9687 - val_loss: 0.1915 - val_accuracy: 0.9286 - 796ms/epoch - 29ms/step
## Epoch 116/200
##
## Epoch 116: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0848 - accuracy: 0.9687 - val_loss: 0.1769 - val_accuracy: 0.9357 - 802ms/epoch - 30ms/step
## Epoch 117/200
##
## Epoch 117: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0781 - accuracy: 0.9775 - val_loss: 0.2022 - val_accuracy: 0.9357 - 780ms/epoch - 29ms/step
## Epoch 118/200
##
## Epoch 118: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0793 - accuracy: 0.9752 - val_loss: 0.1787 - val_accuracy: 0.9310 - 745ms/epoch - 28ms/step
## Epoch 119/200
##
## Epoch 119: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0827 - accuracy: 0.9704 - val_loss: 0.1835 - val_accuracy: 0.9452 - 776ms/epoch - 29ms/step
## Epoch 120/200
##
## Epoch 120: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0855 - accuracy: 0.9722 - val_loss: 0.1725 - val_accuracy: 0.9429 - 762ms/epoch - 28ms/step
## Epoch 121/200
##
## Epoch 121: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0749 - accuracy: 0.9758 - val_loss: 0.2038 - val_accuracy: 0.9381 - 853ms/epoch - 32ms/step
## Epoch 122/200
##
## Epoch 122: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0741 - accuracy: 0.9775 - val_loss: 0.1810 - val_accuracy: 0.9429 - 774ms/epoch - 29ms/step
## Epoch 123/200
##
## Epoch 123: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0681 - accuracy: 0.9817 - val_loss: 0.1785 - val_accuracy: 0.9429 - 776ms/epoch - 29ms/step
## Epoch 124/200
##
## Epoch 124: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0748 - accuracy: 0.9740 - val_loss: 0.2091 - val_accuracy: 0.9310 - 773ms/epoch - 29ms/step
## Epoch 125/200
##
## Epoch 125: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0709 - accuracy: 0.9781 - val_loss: 0.1876 - val_accuracy: 0.9357 - 807ms/epoch - 30ms/step
## Epoch 126/200
##
## Epoch 126: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0807 - accuracy: 0.9734 - val_loss: 0.1761 - val_accuracy: 0.9429 - 766ms/epoch - 28ms/step
## Epoch 127/200
##
## Epoch 127: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0803 - accuracy: 0.9704 - val_loss: 0.1810 - val_accuracy: 0.9357 - 773ms/epoch - 29ms/step
## Epoch 128/200
##
## Epoch 128: val_accuracy did not improve from 0.94762
## 27/27 - 1s - loss: 0.0724 - accuracy: 0.9716 - val_loss: 0.1889 - val_accuracy: 0.9333 - 773ms/epoch - 29ms/step
## Epoch 129/200
##
## Epoch 129: val_accuracy improved from 0.94762 to 0.95238, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.0713 - accuracy: 0.9769 - val_loss: 0.1742 - val_accuracy: 0.9524 - 851ms/epoch - 32ms/step
## Epoch 130/200
##
## Epoch 130: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0685 - accuracy: 0.9752 - val_loss: 0.1856 - val_accuracy: 0.9405 - 794ms/epoch - 29ms/step
## Epoch 131/200
##
## Epoch 131: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0666 - accuracy: 0.9793 - val_loss: 0.1854 - val_accuracy: 0.9357 - 762ms/epoch - 28ms/step
## Epoch 132/200
##
## Epoch 132: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0693 - accuracy: 0.9775 - val_loss: 0.1687 - val_accuracy: 0.9405 - 776ms/epoch - 29ms/step
## Epoch 133/200
##
## Epoch 133: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0678 - accuracy: 0.9775 - val_loss: 0.1702 - val_accuracy: 0.9524 - 776ms/epoch - 29ms/step
## Epoch 134/200
##
## Epoch 134: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0678 - accuracy: 0.9781 - val_loss: 0.1731 - val_accuracy: 0.9500 - 842ms/epoch - 31ms/step
## Epoch 135/200
##
## Epoch 135: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0673 - accuracy: 0.9728 - val_loss: 0.1707 - val_accuracy: 0.9476 - 773ms/epoch - 29ms/step
## Epoch 136/200
##
## Epoch 136: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0687 - accuracy: 0.9734 - val_loss: 0.1881 - val_accuracy: 0.9452 - 760ms/epoch - 28ms/step
## Epoch 137/200
##
## Epoch 137: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0783 - accuracy: 0.9716 - val_loss: 0.2057 - val_accuracy: 0.9286 - 776ms/epoch - 29ms/step
## Epoch 138/200
##
## Epoch 138: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0795 - accuracy: 0.9728 - val_loss: 0.1749 - val_accuracy: 0.9429 - 792ms/epoch - 29ms/step
## Epoch 139/200
##
## Epoch 139: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0675 - accuracy: 0.9763 - val_loss: 0.1773 - val_accuracy: 0.9429 - 793ms/epoch - 29ms/step
## Epoch 140/200
##
## Epoch 140: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0578 - accuracy: 0.9805 - val_loss: 0.1775 - val_accuracy: 0.9429 - 778ms/epoch - 29ms/step
## Epoch 141/200
##
## Epoch 141: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0581 - accuracy: 0.9811 - val_loss: 0.1737 - val_accuracy: 0.9381 - 760ms/epoch - 28ms/step
## Epoch 142/200
##
## Epoch 142: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0695 - accuracy: 0.9769 - val_loss: 0.1813 - val_accuracy: 0.9452 - 794ms/epoch - 29ms/step
## Epoch 143/200
##
## Epoch 143: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0656 - accuracy: 0.9805 - val_loss: 0.1846 - val_accuracy: 0.9476 - 784ms/epoch - 29ms/step
## Epoch 144/200
##
## Epoch 144: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0638 - accuracy: 0.9793 - val_loss: 0.1928 - val_accuracy: 0.9405 - 762ms/epoch - 28ms/step
## Epoch 145/200
##
## Epoch 145: val_accuracy did not improve from 0.95238
## 27/27 - 1s - loss: 0.0677 - accuracy: 0.9805 - val_loss: 0.1735 - val_accuracy: 0.9476 - 774ms/epoch - 29ms/step
## Epoch 146/200
##
## Epoch 146: val_accuracy improved from 0.95238 to 0.95476, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.0607 - accuracy: 0.9823 - val_loss: 0.1686 - val_accuracy: 0.9548 - 826ms/epoch - 31ms/step
## Epoch 147/200
##
## Epoch 147: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0606 - accuracy: 0.9817 - val_loss: 0.1842 - val_accuracy: 0.9429 - 824ms/epoch - 31ms/step
## Epoch 148/200
##
## Epoch 148: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0503 - accuracy: 0.9858 - val_loss: 0.1795 - val_accuracy: 0.9524 - 822ms/epoch - 30ms/step
## Epoch 149/200
##
## Epoch 149: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0524 - accuracy: 0.9870 - val_loss: 0.1841 - val_accuracy: 0.9429 - 779ms/epoch - 29ms/step
## Epoch 150/200
##
## Epoch 150: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0601 - accuracy: 0.9817 - val_loss: 0.1797 - val_accuracy: 0.9429 - 762ms/epoch - 28ms/step
## Epoch 151/200
##
## Epoch 151: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0588 - accuracy: 0.9781 - val_loss: 0.1773 - val_accuracy: 0.9452 - 825ms/epoch - 31ms/step
## Epoch 152/200
##
## Epoch 152: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0548 - accuracy: 0.9829 - val_loss: 0.1744 - val_accuracy: 0.9452 - 761ms/epoch - 28ms/step
## Epoch 153/200
##
## Epoch 153: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0590 - accuracy: 0.9793 - val_loss: 0.1655 - val_accuracy: 0.9357 - 791ms/epoch - 29ms/step
## Epoch 154/200
##
## Epoch 154: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0587 - accuracy: 0.9834 - val_loss: 0.1687 - val_accuracy: 0.9500 - 759ms/epoch - 28ms/step
## Epoch 155/200
##
## Epoch 155: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0664 - accuracy: 0.9787 - val_loss: 0.1782 - val_accuracy: 0.9381 - 775ms/epoch - 29ms/step
## Epoch 156/200
##
## Epoch 156: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0532 - accuracy: 0.9829 - val_loss: 0.1901 - val_accuracy: 0.9452 - 780ms/epoch - 29ms/step
## Epoch 157/200
##
## Epoch 157: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0495 - accuracy: 0.9823 - val_loss: 0.2008 - val_accuracy: 0.9357 - 766ms/epoch - 28ms/step
## Epoch 158/200
##
## Epoch 158: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0644 - accuracy: 0.9805 - val_loss: 0.1699 - val_accuracy: 0.9500 - 780ms/epoch - 29ms/step
## Epoch 159/200
##
## Epoch 159: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0597 - accuracy: 0.9811 - val_loss: 0.1833 - val_accuracy: 0.9476 - 750ms/epoch - 28ms/step
## Epoch 160/200
##
## Epoch 160: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0525 - accuracy: 0.9858 - val_loss: 0.1620 - val_accuracy: 0.9524 - 791ms/epoch - 29ms/step
## Epoch 161/200
##
## Epoch 161: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0581 - accuracy: 0.9811 - val_loss: 0.1838 - val_accuracy: 0.9405 - 856ms/epoch - 32ms/step
## Epoch 162/200
##
## Epoch 162: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0539 - accuracy: 0.9840 - val_loss: 0.1743 - val_accuracy: 0.9476 - 760ms/epoch - 28ms/step
## Epoch 163/200
##
## Epoch 163: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0631 - accuracy: 0.9781 - val_loss: 0.1825 - val_accuracy: 0.9381 - 805ms/epoch - 30ms/step
## Epoch 164/200
##
## Epoch 164: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0526 - accuracy: 0.9829 - val_loss: 0.1708 - val_accuracy: 0.9476 - 758ms/epoch - 28ms/step
## Epoch 165/200
##
## Epoch 165: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0521 - accuracy: 0.9846 - val_loss: 0.2061 - val_accuracy: 0.9357 - 794ms/epoch - 29ms/step
## Epoch 166/200
##
## Epoch 166: val_accuracy did not improve from 0.95476
## 27/27 - 1s - loss: 0.0587 - accuracy: 0.9805 - val_loss: 0.1687 - val_accuracy: 0.9429 - 779ms/epoch - 29ms/step
## Epoch 167/200
##
## Epoch 167: val_accuracy improved from 0.95476 to 0.95714, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.0493 - accuracy: 0.9811 - val_loss: 0.1575 - val_accuracy: 0.9571 - 821ms/epoch - 30ms/step
## Epoch 168/200
##
## Epoch 168: val_accuracy did not improve from 0.95714
## 27/27 - 1s - loss: 0.0404 - accuracy: 0.9882 - val_loss: 0.1633 - val_accuracy: 0.9500 - 776ms/epoch - 29ms/step
## Epoch 169/200
##
## Epoch 169: val_accuracy improved from 0.95714 to 0.95952, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.0438 - accuracy: 0.9852 - val_loss: 0.1526 - val_accuracy: 0.9595 - 824ms/epoch - 31ms/step
## Epoch 170/200
##
## Epoch 170: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0511 - accuracy: 0.9805 - val_loss: 0.1612 - val_accuracy: 0.9429 - 762ms/epoch - 28ms/step
## Epoch 171/200
##
## Epoch 171: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0401 - accuracy: 0.9888 - val_loss: 0.1814 - val_accuracy: 0.9357 - 761ms/epoch - 28ms/step
## Epoch 172/200
##
## Epoch 172: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0499 - accuracy: 0.9840 - val_loss: 0.1535 - val_accuracy: 0.9476 - 1s/epoch - 47ms/step
## Epoch 173/200
##
## Epoch 173: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0501 - accuracy: 0.9817 - val_loss: 0.1717 - val_accuracy: 0.9452 - 779ms/epoch - 29ms/step
## Epoch 174/200
##
## Epoch 174: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0622 - accuracy: 0.9793 - val_loss: 0.1629 - val_accuracy: 0.9500 - 806ms/epoch - 30ms/step
## Epoch 175/200
##
## Epoch 175: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0610 - accuracy: 0.9793 - val_loss: 0.1824 - val_accuracy: 0.9476 - 775ms/epoch - 29ms/step
## Epoch 176/200
##
## Epoch 176: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0530 - accuracy: 0.9823 - val_loss: 0.1650 - val_accuracy: 0.9524 - 762ms/epoch - 28ms/step
## Epoch 177/200
##
## Epoch 177: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0430 - accuracy: 0.9864 - val_loss: 0.1778 - val_accuracy: 0.9405 - 780ms/epoch - 29ms/step
## Epoch 178/200
##
## Epoch 178: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0462 - accuracy: 0.9882 - val_loss: 0.1637 - val_accuracy: 0.9500 - 760ms/epoch - 28ms/step
## Epoch 179/200
##
## Epoch 179: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0434 - accuracy: 0.9858 - val_loss: 0.1662 - val_accuracy: 0.9500 - 804ms/epoch - 30ms/step
## Epoch 180/200
##
## Epoch 180: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0426 - accuracy: 0.9876 - val_loss: 0.1713 - val_accuracy: 0.9452 - 775ms/epoch - 29ms/step
## Epoch 181/200
##
## Epoch 181: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0497 - accuracy: 0.9817 - val_loss: 0.1668 - val_accuracy: 0.9524 - 792ms/epoch - 29ms/step
## Epoch 182/200
##
## Epoch 182: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0495 - accuracy: 0.9805 - val_loss: 0.2006 - val_accuracy: 0.9357 - 774ms/epoch - 29ms/step
## Epoch 183/200
##
## Epoch 183: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0590 - accuracy: 0.9817 - val_loss: 0.2014 - val_accuracy: 0.9333 - 776ms/epoch - 29ms/step
## Epoch 184/200
##
## Epoch 184: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0525 - accuracy: 0.9829 - val_loss: 0.2175 - val_accuracy: 0.9357 - 793ms/epoch - 29ms/step
## Epoch 185/200
##
## Epoch 185: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0429 - accuracy: 0.9876 - val_loss: 0.1767 - val_accuracy: 0.9500 - 794ms/epoch - 29ms/step
## Epoch 186/200
##
## Epoch 186: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0478 - accuracy: 0.9829 - val_loss: 0.1820 - val_accuracy: 0.9381 - 786ms/epoch - 29ms/step
## Epoch 187/200
##
## Epoch 187: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0432 - accuracy: 0.9864 - val_loss: 0.1785 - val_accuracy: 0.9476 - 788ms/epoch - 29ms/step
## Epoch 188/200
##
## Epoch 188: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0389 - accuracy: 0.9888 - val_loss: 0.1727 - val_accuracy: 0.9476 - 770ms/epoch - 29ms/step
## Epoch 189/200
##
## Epoch 189: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0399 - accuracy: 0.9870 - val_loss: 0.1755 - val_accuracy: 0.9500 - 781ms/epoch - 29ms/step
## Epoch 190/200
##
## Epoch 190: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0429 - accuracy: 0.9846 - val_loss: 0.1725 - val_accuracy: 0.9452 - 857ms/epoch - 32ms/step
## Epoch 191/200
##
## Epoch 191: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0439 - accuracy: 0.9858 - val_loss: 0.1893 - val_accuracy: 0.9405 - 864ms/epoch - 32ms/step
## Epoch 192/200
##
## Epoch 192: val_accuracy did not improve from 0.95952
## 27/27 - 1s - loss: 0.0443 - accuracy: 0.9870 - val_loss: 0.1777 - val_accuracy: 0.9476 - 823ms/epoch - 30ms/step
## Epoch 193/200
##
## Epoch 193: val_accuracy improved from 0.95952 to 0.96190, saving model to C:\Users\Fathan\Documents\Obsidian Vault\2. Kuliah\Smt 6\2. Teknik Pembelajaran Mesin\Project\model_check_x.keras
## 27/27 - 1s - loss: 0.0429 - accuracy: 0.9852 - val_loss: 0.1690 - val_accuracy: 0.9619 - 872ms/epoch - 32ms/step
## Epoch 194/200
##
## Epoch 194: val_accuracy did not improve from 0.96190
## 27/27 - 1s - loss: 0.0330 - accuracy: 0.9888 - val_loss: 0.2210 - val_accuracy: 0.9357 - 871ms/epoch - 32ms/step
## Epoch 195/200
##
## Epoch 195: val_accuracy did not improve from 0.96190
## 27/27 - 1s - loss: 0.0479 - accuracy: 0.9823 - val_loss: 0.1835 - val_accuracy: 0.9452 - 851ms/epoch - 32ms/step
## Epoch 196/200
##
## Epoch 196: val_accuracy did not improve from 0.96190
## 27/27 - 1s - loss: 0.0419 - accuracy: 0.9840 - val_loss: 0.1898 - val_accuracy: 0.9357 - 807ms/epoch - 30ms/step
## Epoch 197/200
##
## Epoch 197: val_accuracy did not improve from 0.96190
## 27/27 - 1s - loss: 0.0364 - accuracy: 0.9882 - val_loss: 0.1963 - val_accuracy: 0.9381 - 804ms/epoch - 30ms/step
## Epoch 198/200
##
## Epoch 198: val_accuracy did not improve from 0.96190
## 27/27 - 1s - loss: 0.0403 - accuracy: 0.9870 - val_loss: 0.1690 - val_accuracy: 0.9500 - 808ms/epoch - 30ms/step
## Epoch 199/200
##
## Epoch 199: val_accuracy did not improve from 0.96190
## 27/27 - 1s - loss: 0.0433 - accuracy: 0.9846 - val_loss: 0.1733 - val_accuracy: 0.9381 - 808ms/epoch - 30ms/step
## Epoch 200/200
##
## Epoch 200: val_accuracy did not improve from 0.96190
## 27/27 - 1s - loss: 0.0406 - accuracy: 0.9852 - val_loss: 0.1839 - val_accuracy: 0.9357 - 793ms/epoch - 29ms/step
## Model: "sequential_2"
## ____________________________________________________________________
## Layer (type) Output Shape Param #
## ====================================================================
## dense_7 (Dense) (None, 120) 3840
## dropout_3 (Dropout) (None, 120) 0
## dense_6 (Dense) (None, 100) 12100
## dropout_2 (Dropout) (None, 100) 0
## dense_5 (Dense) (None, 7) 707
## ====================================================================
## Total params: 16647 (65.03 KB)
## Trainable params: 16647 (65.03 KB)
## Non-trainable params: 0 (0.00 Byte)
## ____________________________________________________________________
# evaluasi model
scores <- model.3 %>% evaluate(test_X, test_y)
## 14/14 - 0s - loss: 0.1839 - accuracy: 0.9357 - 71ms/epoch - 5ms/step
## loss accuracy
## 0.1838573 0.9357143
Memuat Model Hasil Checkpoint + Prediksi
# memuat model yang disimpan hasil checkpoint
last.model <- load_model_tf("model_check_x.keras")
pred.3 <- predict(last.model, test_X)
## 14/14 - 0s - 108ms/epoch - 8ms/step
label_pred <- apply(pred.3, 1, which.max)
label_pred
## [1] 2 7 3 7 7 3 2 2 6 7 2 2 2 1 2 2 2 7 6 2 2 2 2 1 2 7 2 6 3 2 7
## [32] 7 2 7 7 2 6 3 4 1 7 3 2 6 3 2 4 6 2 2 2 2 2 7 2 2 3 1 7 2 2 2
## [63] 2 2 1 2 2 2 2 2 3 2 2 2 3 2 2 7 2 2 2 3 6 1 2 1 2 2 7 2 7 2 3
## [94] 2 2 2 1 2 2 2 2 6 2 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [125] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6 6 6 6 6 6
## [156] 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
## [187] 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 3 7
## [218] 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 3 3 3 3 3 3
## [249] 3 3 3 3 3 3 3 7 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
## [280] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4
## [311] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
## [342] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
## [373] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
## [404] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
# label_true <- apply(test_y, 1, which.max)
# label_true
confusionMatrix(as.factor(label_true), as.factor(label_pred))
## Confusion Matrix and Statistics
##
## Reference
## Prediction 1 2 3 4 5 6 7
## 1 50 4 0 0 0 0 0
## 2 3 52 0 0 0 2 0
## 3 0 0 67 0 0 0 3
## 4 0 0 0 59 0 0 0
## 5 0 0 0 0 64 0 0
## 6 0 2 0 0 0 55 1
## 7 0 0 1 0 0 0 57
##
## Overall Statistics
##
## Accuracy : 0.9619
## 95% CI : (0.9389, 0.9781)
## No Information Rate : 0.1619
## P-Value [Acc > NIR] : < 2.2e-16
##
## Kappa : 0.9555
##
## Mcnemar's Test P-Value : NA
##
## Statistics by Class:
##
## Class: 1 Class: 2 Class: 3 Class: 4 Class: 5
## Sensitivity 0.9434 0.8966 0.9853 1.0000 1.0000
## Specificity 0.9891 0.9862 0.9915 1.0000 1.0000
## Pos Pred Value 0.9259 0.9123 0.9571 1.0000 1.0000
## Neg Pred Value 0.9918 0.9835 0.9971 1.0000 1.0000
## Prevalence 0.1262 0.1381 0.1619 0.1405 0.1524
## Detection Rate 0.1190 0.1238 0.1595 0.1405 0.1524
## Detection Prevalence 0.1286 0.1357 0.1667 0.1405 0.1524
## Balanced Accuracy 0.9662 0.9414 0.9884 1.0000 1.0000
## Class: 6 Class: 7
## Sensitivity 0.9649 0.9344
## Specificity 0.9917 0.9972
## Pos Pred Value 0.9483 0.9828
## Neg Pred Value 0.9945 0.9890
## Prevalence 0.1357 0.1452
## Detection Rate 0.1310 0.1357
## Detection Prevalence 0.1381 0.1381
## Balanced Accuracy 0.9783 0.9658