Description des données “iris”

#données iris from package "datasets"
data(iris)

#descritpion
str(iris)
'data.frame':   150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
#premières lignes
head(iris)
#nombre de modalités de la cible
K <- nlevels(iris$Species)
print(K)
[1] 3

Partition apprentissage-test

#id pour l'échantillon TRAIN
set.seed(24122020)
idTrain <- sample(1:nrow(iris),100)
print(idTrain)
  [1]  57  37 115  18  89  88  67 120 109 113  41 137  34 106 105  63  17  98  77
 [20] 139  52  64  65 140 119 132 141   5  20 108  60 110  36 143 101  72  58  84
 [39] 123 111 136   4  33  69  71  16 130 138  46  31  43  80  87  19  76  22 129
 [58]  15  81 107 148  26  79 125  94  86 133  27  68  13  92  53 102 144  39 100
 [77] 121  62 149  93  48  10   6  61  55  32 134  29 145  75  54  14   2  45  47
 [96]  90 146   8   9  42
#éch. d'apprentissage
DTrain <- iris[idTrain,]

#échantillon test
DTest <- iris[-idTrain,]

#dimensions
print(dim(DTrain))
[1] 100   5
print(dim(DTest))
[1] 50  5

Préparation des données

Standardisation des var. prédictives

#standardisation des var. prédictives
ZTrain <- scale(DTrain[,1:4],center=TRUE,scale=TRUE)

#vérifications
print(apply(ZTrain,2,mean)) #moyennes
 Sepal.Length   Sepal.Width  Petal.Length   Petal.Width 
-3.534911e-16  3.227778e-16 -1.091336e-16 -9.664795e-17 
print(apply(ZTrain,2,sd)) #écarts-type
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
           1            1            1            1 

Recodage en 0/1 de la variable cible

#récupération en code la variable cible
codeYTrain <- unclass(DTrain$Species)
print(codeYTrain)
  [1] 2 1 3 1 2 2 2 3 3 3 1 3 1 3 3 2 1 2 2 3 2 2 2 3 3 3 3 1 1 3 2 3 1 3 3 2 2 2 3
 [40] 3 3 1 1 2 2 1 3 3 1 1 1 2 2 1 2 1 3 1 2 3 3 1 2 3 2 2 3 1 2 1 2 2 3 3 1 2 3 2
 [79] 3 2 1 1 1 2 2 1 3 1 3 2 2 1 1 1 1 2 3 1 1 1
attr(,"levels")
[1] "setosa"     "versicolor" "virginica" 
#préparation matrice
mYTrain <- matrix(0,nrow=nrow(DTrain),ncol=K)

#remplissage de 1 dans les bonnes colonnes
for (i in 1:nrow(DTrain)){
  mYTrain[i,codeYTrain[i]] <- 1
}

#vérification
print(head(DTrain$Species,10))
 [1] versicolor setosa     virginica  setosa     versicolor versicolor versicolor
 [8] virginica  virginica  virginica 
Levels: setosa versicolor virginica
#vs.
print(head(mYTrain,10))
      [,1] [,2] [,3]
 [1,]    0    1    0
 [2,]    1    0    0
 [3,]    0    0    1
 [4,]    1    0    0
 [5,]    0    1    0
 [6,]    0    1    0
 [7,]    0    1    0
 [8,]    0    0    1
 [9,]    0    0    1
[10,]    0    0    1
#remplissage matrice
mYTrain <- t(sapply(1:nrow(DTrain),function(i){v <- rep(0,K);v[codeYTrain[i]] <- 1;return(v)}))

#vérification
print(head(DTrain$Species,10))
 [1] versicolor setosa     virginica  setosa     versicolor versicolor versicolor
 [8] virginica  virginica  virginica 
Levels: setosa versicolor virginica
#vs.
print(head(mYTrain,10))
      [,1] [,2] [,3]
 [1,]    0    1    0
 [2,]    1    0    0
 [3,]    0    0    1
 [4,]    1    0    0
 [5,]    0    1    0
 [6,]    0    1    0
 [7,]    0    1    0
 [8,]    0    0    1
 [9,]    0    0    1
[10,]    0    0    1
#codes possibles
codesPossibles <- seq(1,K)

#ou encore - si on veut vraiment du R puriste de chez puriste
mYTrain <- 1*t(sapply(codeYTrain,function(v){(codesPossibles==v)}))

#vérification
print(head(DTrain$Species,10))
 [1] versicolor setosa     virginica  setosa     versicolor versicolor versicolor
 [8] virginica  virginica  virginica 
Levels: setosa versicolor virginica
#vs.
print(head(mYTrain,10))
      [,1] [,2] [,3]
 [1,]    0    1    0
 [2,]    1    0    0
 [3,]    0    0    1
 [4,]    1    0    0
 [5,]    0    1    0
 [6,]    0    1    0
 [7,]    0    1    0
 [8,]    0    0    1
 [9,]    0    0    1
[10,]    0    0    1

Modélisation avec keras

#chargement de la librairie
library(keras)

#définition de la structure
clf <- keras::keras_model_sequential()
2020-12-24 15:45:42.131737: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
2020-12-24 15:45:42.132254: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
clf %>% layer_dense(units=K,input_shape=ncol(ZTrain),activation="softmax")
2020-12-24 15:45:46.577652: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'nvcuda.dll'; dlerror: nvcuda.dll not found
2020-12-24 15:45:46.577871: E tensorflow/stream_executor/cuda/cuda_driver.cc:313] failed call to cuInit: UNKNOWN ERROR (303)
2020-12-24 15:45:46.582031: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:169] retrieving CUDA diagnostic information for host: DESKTOP-S40H0PS
2020-12-24 15:45:46.582274: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:176] hostname: DESKTOP-S40H0PS
2020-12-24 15:45:46.584768: I tensorflow/core/platform/cpu_feature_guard.cc:143] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2020-12-24 15:45:46.626837: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x1c92e969130 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-12-24 15:45:46.627163: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
clf %>% compile(loss="categorical_crossentropy",optimizer="adam",metrics="categorical_accuracy")

#lancement de la modélisation
clf %>% fit(x=ZTrain,y=mYTrain,epochs=150,batch_size=5)
Epoch 1/150

 1/20 [>.............................] - ETA: 0s - loss: 1.7726 - categorical_accuracy: 0.0000e+00
20/20 [==============================] - 0s 1ms/step - loss: 1.5632 - categorical_accuracy: 0.1500

20/20 [==============================] - 1s 40ms/step - loss: 1.5632 - categorical_accuracy: 0.1500
Epoch 2/150

 1/20 [>.............................] - ETA: 0s - loss: 1.2480 - categorical_accuracy: 0.4000
20/20 [==============================] - 0s 908us/step - loss: 1.4960 - categorical_accuracy: 0.1500

20/20 [==============================] - 0s 15ms/step - loss: 1.4960 - categorical_accuracy: 0.1500 
Epoch 3/150

 1/20 [>.............................] - ETA: 0s - loss: 1.3777 - categorical_accuracy: 0.2000
20/20 [==============================] - 0s 1ms/step - loss: 1.4342 - categorical_accuracy: 0.1600

20/20 [==============================] - 0s 17ms/step - loss: 1.4342 - categorical_accuracy: 0.1600
Epoch 4/150

 1/20 [>.............................] - ETA: 0s - loss: 1.2624 - categorical_accuracy: 0.2000
20/20 [==============================] - 0s 1ms/step - loss: 1.3732 - categorical_accuracy: 0.1700

20/20 [==============================] - 0s 15ms/step - loss: 1.3732 - categorical_accuracy: 0.1700
Epoch 5/150

 1/20 [>.............................] - ETA: 0s - loss: 1.1842 - categorical_accuracy: 0.4000
20/20 [==============================] - 0s 1ms/step - loss: 1.3163 - categorical_accuracy: 0.1800

20/20 [==============================] - 0s 15ms/step - loss: 1.3163 - categorical_accuracy: 0.1800
Epoch 6/150

 1/20 [>.............................] - ETA: 0s - loss: 1.3237 - categorical_accuracy: 0.0000e+00
20/20 [==============================] - 0s 1ms/step - loss: 1.2624 - categorical_accuracy: 0.2000

20/20 [==============================] - 0s 15ms/step - loss: 1.2624 - categorical_accuracy: 0.2000
Epoch 7/150

 1/20 [>.............................] - ETA: 0s - loss: 1.3995 - categorical_accuracy: 0.0000e+00
20/20 [==============================] - 0s 1ms/step - loss: 1.2120 - categorical_accuracy: 0.2400

20/20 [==============================] - 0s 16ms/step - loss: 1.2120 - categorical_accuracy: 0.2400
Epoch 8/150

 1/20 [>.............................] - ETA: 0s - loss: 1.4660 - categorical_accuracy: 0.2000
20/20 [==============================] - 0s 998us/step - loss: 1.1648 - categorical_accuracy: 0.3000

20/20 [==============================] - 0s 15ms/step - loss: 1.1648 - categorical_accuracy: 0.3000 
Epoch 9/150

 1/20 [>.............................] - ETA: 0s - loss: 1.4028 - categorical_accuracy: 0.0000e+00
20/20 [==============================] - 0s 949us/step - loss: 1.1168 - categorical_accuracy: 0.3200

20/20 [==============================] - 0s 15ms/step - loss: 1.1168 - categorical_accuracy: 0.3200 
Epoch 10/150

 1/20 [>.............................] - ETA: 0s - loss: 1.0949 - categorical_accuracy: 0.4000
20/20 [==============================] - 0s 1ms/step - loss: 1.0752 - categorical_accuracy: 0.3500

20/20 [==============================] - 0s 15ms/step - loss: 1.0752 - categorical_accuracy: 0.3500
Epoch 11/150

 1/20 [>.............................] - ETA: 0s - loss: 0.9659 - categorical_accuracy: 0.4000
20/20 [==============================] - 0s 900us/step - loss: 1.0349 - categorical_accuracy: 0.3600

20/20 [==============================] - 0s 15ms/step - loss: 1.0349 - categorical_accuracy: 0.3600 
Epoch 12/150

 1/20 [>.............................] - ETA: 0s - loss: 0.8810 - categorical_accuracy: 0.4000
20/20 [==============================] - 0s 999us/step - loss: 0.9977 - categorical_accuracy: 0.4000

20/20 [==============================] - 0s 15ms/step - loss: 0.9977 - categorical_accuracy: 0.4000 
Epoch 13/150

 1/20 [>.............................] - ETA: 0s - loss: 1.0338 - categorical_accuracy: 0.2000
20/20 [==============================] - 0s 949us/step - loss: 0.9627 - categorical_accuracy: 0.4700

20/20 [==============================] - 0s 16ms/step - loss: 0.9627 - categorical_accuracy: 0.4700 
Epoch 14/150

 1/20 [>.............................] - ETA: 0s - loss: 0.9556 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 1ms/step - loss: 0.9303 - categorical_accuracy: 0.5500

20/20 [==============================] - 0s 16ms/step - loss: 0.9303 - categorical_accuracy: 0.5500
Epoch 15/150

 1/20 [>.............................] - ETA: 0s - loss: 0.9911 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 1ms/step - loss: 0.8994 - categorical_accuracy: 0.5900

20/20 [==============================] - 0s 15ms/step - loss: 0.8994 - categorical_accuracy: 0.5900
Epoch 16/150

 1/20 [>.............................] - ETA: 0s - loss: 0.9314 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 950us/step - loss: 0.8714 - categorical_accuracy: 0.6300

20/20 [==============================] - 0s 15ms/step - loss: 0.8714 - categorical_accuracy: 0.6300 
Epoch 17/150

 1/20 [>.............................] - ETA: 0s - loss: 0.7282 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 2ms/step - loss: 0.8452 - categorical_accuracy: 0.6500

20/20 [==============================] - 0s 17ms/step - loss: 0.8452 - categorical_accuracy: 0.6500
Epoch 18/150

 1/20 [>.............................] - ETA: 0s - loss: 0.8765 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 999us/step - loss: 0.8198 - categorical_accuracy: 0.7000

20/20 [==============================] - 0s 15ms/step - loss: 0.8198 - categorical_accuracy: 0.7000 
Epoch 19/150

 1/20 [>.............................] - ETA: 0s - loss: 0.8136 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 949us/step - loss: 0.7971 - categorical_accuracy: 0.7100

20/20 [==============================] - 0s 15ms/step - loss: 0.7971 - categorical_accuracy: 0.7100 
Epoch 20/150

 1/20 [>.............................] - ETA: 0s - loss: 0.9179 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 1ms/step - loss: 0.7754 - categorical_accuracy: 0.7300

20/20 [==============================] - 0s 15ms/step - loss: 0.7754 - categorical_accuracy: 0.7300
Epoch 21/150

 1/20 [>.............................] - ETA: 0s - loss: 0.6775 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.7561 - categorical_accuracy: 0.7400

20/20 [==============================] - 0s 15ms/step - loss: 0.7561 - categorical_accuracy: 0.7400
Epoch 22/150

 1/20 [>.............................] - ETA: 0s - loss: 0.8206 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 999us/step - loss: 0.7371 - categorical_accuracy: 0.7700

20/20 [==============================] - 0s 15ms/step - loss: 0.7371 - categorical_accuracy: 0.7700 
Epoch 23/150

 1/20 [>.............................] - ETA: 0s - loss: 0.9772 - categorical_accuracy: 0.4000
20/20 [==============================] - 0s 1ms/step - loss: 0.7198 - categorical_accuracy: 0.7700

20/20 [==============================] - 0s 16ms/step - loss: 0.7198 - categorical_accuracy: 0.7700
Epoch 24/150

 1/20 [>.............................] - ETA: 0s - loss: 0.7488 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 949us/step - loss: 0.7034 - categorical_accuracy: 0.7800

20/20 [==============================] - 0s 15ms/step - loss: 0.7034 - categorical_accuracy: 0.7800 
Epoch 25/150

 1/20 [>.............................] - ETA: 0s - loss: 0.6005 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 949us/step - loss: 0.6887 - categorical_accuracy: 0.7800

20/20 [==============================] - 0s 14ms/step - loss: 0.6887 - categorical_accuracy: 0.7800 
Epoch 26/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5832 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.6738 - categorical_accuracy: 0.7800

20/20 [==============================] - 0s 15ms/step - loss: 0.6738 - categorical_accuracy: 0.7800
Epoch 27/150

 1/20 [>.............................] - ETA: 0s - loss: 0.8486 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 949us/step - loss: 0.6608 - categorical_accuracy: 0.7800

20/20 [==============================] - 0s 15ms/step - loss: 0.6608 - categorical_accuracy: 0.7800 
Epoch 28/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4760 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 899us/step - loss: 0.6479 - categorical_accuracy: 0.7900

20/20 [==============================] - 0s 15ms/step - loss: 0.6479 - categorical_accuracy: 0.7900 
Epoch 29/150

 1/20 [>.............................] - ETA: 0s - loss: 0.7373 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 899us/step - loss: 0.6363 - categorical_accuracy: 0.8000

20/20 [==============================] - 0s 15ms/step - loss: 0.6363 - categorical_accuracy: 0.8000 
Epoch 30/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4459 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.6248 - categorical_accuracy: 0.8000

20/20 [==============================] - 0s 17ms/step - loss: 0.6248 - categorical_accuracy: 0.8000
Epoch 31/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5479 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 900us/step - loss: 0.6146 - categorical_accuracy: 0.8100

20/20 [==============================] - 0s 15ms/step - loss: 0.6146 - categorical_accuracy: 0.8100 
Epoch 32/150

 1/20 [>.............................] - ETA: 0s - loss: 0.7665 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 999us/step - loss: 0.6046 - categorical_accuracy: 0.8200

20/20 [==============================] - 0s 15ms/step - loss: 0.6046 - categorical_accuracy: 0.8200 
Epoch 33/150

 1/20 [>.............................] - ETA: 0s - loss: 0.8420 - categorical_accuracy: 0.4000
20/20 [==============================] - 0s 850us/step - loss: 0.5950 - categorical_accuracy: 0.8200

20/20 [==============================] - 0s 15ms/step - loss: 0.5950 - categorical_accuracy: 0.8200 
Epoch 34/150

 1/20 [>.............................] - ETA: 0s - loss: 0.7104 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 900us/step - loss: 0.5863 - categorical_accuracy: 0.8200

20/20 [==============================] - 0s 14ms/step - loss: 0.5863 - categorical_accuracy: 0.8200 
Epoch 35/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5778 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.5780 - categorical_accuracy: 0.8100

20/20 [==============================] - 0s 15ms/step - loss: 0.5780 - categorical_accuracy: 0.8100
Epoch 36/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3090 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 999us/step - loss: 0.5695 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 16ms/step - loss: 0.5695 - categorical_accuracy: 0.8300 
Epoch 37/150

 1/20 [>.............................] - ETA: 0s - loss: 0.6663 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.5622 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.5622 - categorical_accuracy: 0.8300
Epoch 38/150

 1/20 [>.............................] - ETA: 0s - loss: 0.7551 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 998us/step - loss: 0.5545 - categorical_accuracy: 0.8200

20/20 [==============================] - 0s 15ms/step - loss: 0.5545 - categorical_accuracy: 0.8200 
Epoch 39/150

 1/20 [>.............................] - ETA: 0s - loss: 0.6003 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 900us/step - loss: 0.5478 - categorical_accuracy: 0.8200

20/20 [==============================] - 0s 15ms/step - loss: 0.5478 - categorical_accuracy: 0.8200 
Epoch 40/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2359 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 950us/step - loss: 0.5411 - categorical_accuracy: 0.8200

20/20 [==============================] - 0s 15ms/step - loss: 0.5411 - categorical_accuracy: 0.8200 
Epoch 41/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3870 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.5346 - categorical_accuracy: 0.8200

20/20 [==============================] - 0s 15ms/step - loss: 0.5346 - categorical_accuracy: 0.8200
Epoch 42/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5513 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 900us/step - loss: 0.5286 - categorical_accuracy: 0.8200

20/20 [==============================] - 0s 15ms/step - loss: 0.5286 - categorical_accuracy: 0.8200 
Epoch 43/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4585 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 900us/step - loss: 0.5228 - categorical_accuracy: 0.8200

20/20 [==============================] - 0s 15ms/step - loss: 0.5228 - categorical_accuracy: 0.8200 
Epoch 44/150

 1/20 [>.............................] - ETA: 0s - loss: 0.7477 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 999us/step - loss: 0.5170 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.5170 - categorical_accuracy: 0.8300 
Epoch 45/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5692 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 1ms/step - loss: 0.5115 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.5115 - categorical_accuracy: 0.8300
Epoch 46/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5065 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.5065 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 16ms/step - loss: 0.5065 - categorical_accuracy: 0.8300
Epoch 47/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4224 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 899us/step - loss: 0.5014 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.5014 - categorical_accuracy: 0.8300 
Epoch 48/150

 1/20 [>.............................] - ETA: 0s - loss: 0.9789 - categorical_accuracy: 0.4000
20/20 [==============================] - 0s 950us/step - loss: 0.4965 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4965 - categorical_accuracy: 0.8300 
Epoch 49/150

 1/20 [>.............................] - ETA: 0s - loss: 0.6170 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 899us/step - loss: 0.4920 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4920 - categorical_accuracy: 0.8300 
Epoch 50/150

 1/20 [>.............................] - ETA: 0s - loss: 0.6112 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.4874 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4874 - categorical_accuracy: 0.8300
Epoch 51/150

 1/20 [>.............................] - ETA: 0s - loss: 0.8611 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 1ms/step - loss: 0.4831 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4831 - categorical_accuracy: 0.8300
Epoch 52/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5955 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.4789 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4789 - categorical_accuracy: 0.8300
Epoch 53/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4680 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.4747 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 16ms/step - loss: 0.4747 - categorical_accuracy: 0.8300
Epoch 54/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4483 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 949us/step - loss: 0.4708 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4708 - categorical_accuracy: 0.8300 
Epoch 55/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5396 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 1000us/step - loss: 0.4669 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4669 - categorical_accuracy: 0.8300  
Epoch 56/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3694 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 999us/step - loss: 0.4633 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4633 - categorical_accuracy: 0.8300 
Epoch 57/150

 1/20 [>.............................] - ETA: 0s - loss: 0.7669 - categorical_accuracy: 0.4000
20/20 [==============================] - 0s 899us/step - loss: 0.4596 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4596 - categorical_accuracy: 0.8300 
Epoch 58/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4091 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.4561 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4561 - categorical_accuracy: 0.8300
Epoch 59/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2888 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1000us/step - loss: 0.4527 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4527 - categorical_accuracy: 0.8300  
Epoch 60/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4993 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 999us/step - loss: 0.4495 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4495 - categorical_accuracy: 0.8300 
Epoch 61/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5064 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 900us/step - loss: 0.4461 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4461 - categorical_accuracy: 0.8300 
Epoch 62/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4190 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.4429 - categorical_accuracy: 0.8300

20/20 [==============================] - 0s 15ms/step - loss: 0.4429 - categorical_accuracy: 0.8300
Epoch 63/150

 1/20 [>.............................] - ETA: 0s - loss: 0.1694 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.4400 - categorical_accuracy: 0.8400

20/20 [==============================] - 0s 16ms/step - loss: 0.4400 - categorical_accuracy: 0.8400
Epoch 64/150

 1/20 [>.............................] - ETA: 0s - loss: 0.1264 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 849us/step - loss: 0.4370 - categorical_accuracy: 0.8500

20/20 [==============================] - 0s 15ms/step - loss: 0.4370 - categorical_accuracy: 0.8500 
Epoch 65/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4348 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.4339 - categorical_accuracy: 0.8500

20/20 [==============================] - 0s 15ms/step - loss: 0.4339 - categorical_accuracy: 0.8500
Epoch 66/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4848 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.4311 - categorical_accuracy: 0.8500

20/20 [==============================] - 0s 15ms/step - loss: 0.4311 - categorical_accuracy: 0.8500
Epoch 67/150

 1/20 [>.............................] - ETA: 0s - loss: 0.6847 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 899us/step - loss: 0.4282 - categorical_accuracy: 0.8500

20/20 [==============================] - 0s 15ms/step - loss: 0.4282 - categorical_accuracy: 0.8500 
Epoch 68/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2951 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 850us/step - loss: 0.4255 - categorical_accuracy: 0.8500

20/20 [==============================] - 0s 16ms/step - loss: 0.4255 - categorical_accuracy: 0.8500 
Epoch 69/150

 1/20 [>.............................] - ETA: 0s - loss: 0.7108 - categorical_accuracy: 0.4000
20/20 [==============================] - 0s 1ms/step - loss: 0.4230 - categorical_accuracy: 0.8500

20/20 [==============================] - 0s 16ms/step - loss: 0.4230 - categorical_accuracy: 0.8500
Epoch 70/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5355 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 899us/step - loss: 0.4203 - categorical_accuracy: 0.8500

20/20 [==============================] - 0s 15ms/step - loss: 0.4203 - categorical_accuracy: 0.8500 
Epoch 71/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4212 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 949us/step - loss: 0.4177 - categorical_accuracy: 0.8500

20/20 [==============================] - 0s 23ms/step - loss: 0.4177 - categorical_accuracy: 0.8500 
Epoch 72/150

 1/20 [>.............................] - ETA: 0s - loss: 0.1605 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 999us/step - loss: 0.4151 - categorical_accuracy: 0.8600

20/20 [==============================] - 0s 15ms/step - loss: 0.4151 - categorical_accuracy: 0.8600 
Epoch 73/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3522 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.4126 - categorical_accuracy: 0.8600

20/20 [==============================] - 0s 15ms/step - loss: 0.4126 - categorical_accuracy: 0.8600
Epoch 74/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3686 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 949us/step - loss: 0.4103 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.4103 - categorical_accuracy: 0.8700 
Epoch 75/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3873 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 949us/step - loss: 0.4079 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.4079 - categorical_accuracy: 0.8700 
Epoch 76/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2175 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.4054 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.4054 - categorical_accuracy: 0.8700
Epoch 77/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3096 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.4032 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.4032 - categorical_accuracy: 0.8700
Epoch 78/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5098 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 948us/step - loss: 0.4008 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.4008 - categorical_accuracy: 0.8700 
Epoch 79/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5410 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.3989 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3989 - categorical_accuracy: 0.8700
Epoch 80/150

 1/20 [>.............................] - ETA: 0s - loss: 0.1310 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 950us/step - loss: 0.3967 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3967 - categorical_accuracy: 0.8700 
Epoch 81/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5188 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 999us/step - loss: 0.3944 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 16ms/step - loss: 0.3944 - categorical_accuracy: 0.8700 
Epoch 82/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5850 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 1ms/step - loss: 0.3922 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3922 - categorical_accuracy: 0.8700
Epoch 83/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5157 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 949us/step - loss: 0.3902 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3902 - categorical_accuracy: 0.8700 
Epoch 84/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4535 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 1ms/step - loss: 0.3881 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3881 - categorical_accuracy: 0.8700
Epoch 85/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3374 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.3860 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 16ms/step - loss: 0.3860 - categorical_accuracy: 0.8700
Epoch 86/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5186 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 999us/step - loss: 0.3841 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 16ms/step - loss: 0.3841 - categorical_accuracy: 0.8700 
Epoch 87/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5354 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.3822 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 16ms/step - loss: 0.3822 - categorical_accuracy: 0.8700
Epoch 88/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2941 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.3802 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 16ms/step - loss: 0.3802 - categorical_accuracy: 0.8700
Epoch 89/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5990 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 950us/step - loss: 0.3783 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 16ms/step - loss: 0.3783 - categorical_accuracy: 0.8700 
Epoch 90/150

 1/20 [>.............................] - ETA: 0s - loss: 0.1228 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.3763 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3763 - categorical_accuracy: 0.8700
Epoch 91/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3560 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 949us/step - loss: 0.3748 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3748 - categorical_accuracy: 0.8700 
Epoch 92/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5074 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 1ms/step - loss: 0.3726 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3726 - categorical_accuracy: 0.8700
Epoch 93/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2270 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 949us/step - loss: 0.3710 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3710 - categorical_accuracy: 0.8700 
Epoch 94/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2151 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 850us/step - loss: 0.3691 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3691 - categorical_accuracy: 0.8700 
Epoch 95/150

 1/20 [>.............................] - ETA: 0s - loss: 0.6069 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 1ms/step - loss: 0.3672 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3672 - categorical_accuracy: 0.8700
Epoch 96/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4966 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 949us/step - loss: 0.3656 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3656 - categorical_accuracy: 0.8700 
Epoch 97/150

 1/20 [>.............................] - ETA: 0s - loss: 0.6261 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 899us/step - loss: 0.3638 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3638 - categorical_accuracy: 0.8700 
Epoch 98/150

 1/20 [>.............................] - ETA: 0s - loss: 0.1075 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 999us/step - loss: 0.3621 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 16ms/step - loss: 0.3621 - categorical_accuracy: 0.8700 
Epoch 99/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3553 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 949us/step - loss: 0.3604 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3604 - categorical_accuracy: 0.8700 
Epoch 100/150

 1/20 [>.............................] - ETA: 0s - loss: 0.1432 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 900us/step - loss: 0.3587 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 14ms/step - loss: 0.3587 - categorical_accuracy: 0.8700 
Epoch 101/150

 1/20 [>.............................] - ETA: 0s - loss: 0.1564 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 879us/step - loss: 0.3571 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3571 - categorical_accuracy: 0.8700 
Epoch 102/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3943 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.3554 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3554 - categorical_accuracy: 0.8700
Epoch 103/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2152 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 899us/step - loss: 0.3538 - categorical_accuracy: 0.8700

20/20 [==============================] - 0s 15ms/step - loss: 0.3538 - categorical_accuracy: 0.8700 
Epoch 104/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4502 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 900us/step - loss: 0.3522 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 16ms/step - loss: 0.3522 - categorical_accuracy: 0.8800 
Epoch 105/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4755 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 1ms/step - loss: 0.3505 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3505 - categorical_accuracy: 0.8800
Epoch 106/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4722 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 1ms/step - loss: 0.3490 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3490 - categorical_accuracy: 0.8800
Epoch 107/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3718 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 999us/step - loss: 0.3474 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3474 - categorical_accuracy: 0.8800 
Epoch 108/150

 1/20 [>.............................] - ETA: 0s - loss: 0.6108 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 1ms/step - loss: 0.3459 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 16ms/step - loss: 0.3459 - categorical_accuracy: 0.8800
Epoch 109/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3260 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.3444 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3444 - categorical_accuracy: 0.8800
Epoch 110/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2350 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.3428 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3428 - categorical_accuracy: 0.8800
Epoch 111/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2424 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.3412 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 16ms/step - loss: 0.3412 - categorical_accuracy: 0.8800
Epoch 112/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4480 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 849us/step - loss: 0.3398 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3398 - categorical_accuracy: 0.8800 
Epoch 113/150

 1/20 [>.............................] - ETA: 0s - loss: 0.6439 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 899us/step - loss: 0.3383 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3383 - categorical_accuracy: 0.8800 
Epoch 114/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5820 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 900us/step - loss: 0.3369 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3369 - categorical_accuracy: 0.8800 
Epoch 115/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4741 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 999us/step - loss: 0.3353 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 16ms/step - loss: 0.3353 - categorical_accuracy: 0.8800 
Epoch 116/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5493 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 949us/step - loss: 0.3339 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3339 - categorical_accuracy: 0.8800 
Epoch 117/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2732 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 950us/step - loss: 0.3325 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3325 - categorical_accuracy: 0.8800 
Epoch 118/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2764 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 900us/step - loss: 0.3310 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3310 - categorical_accuracy: 0.8800 
Epoch 119/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4590 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 949us/step - loss: 0.3297 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3297 - categorical_accuracy: 0.8800 
Epoch 120/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4871 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 900us/step - loss: 0.3282 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3282 - categorical_accuracy: 0.8800 
Epoch 121/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4027 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.3274 - categorical_accuracy: 0.8800

20/20 [==============================] - 0s 15ms/step - loss: 0.3274 - categorical_accuracy: 0.8800
Epoch 122/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2966 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 899us/step - loss: 0.3254 - categorical_accuracy: 0.8900

20/20 [==============================] - 0s 14ms/step - loss: 0.3254 - categorical_accuracy: 0.8900 
Epoch 123/150

 1/20 [>.............................] - ETA: 0s - loss: 0.6869 - categorical_accuracy: 0.6000
20/20 [==============================] - 0s 899us/step - loss: 0.3240 - categorical_accuracy: 0.8900

20/20 [==============================] - 0s 15ms/step - loss: 0.3240 - categorical_accuracy: 0.8900 
Epoch 124/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5099 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 900us/step - loss: 0.3228 - categorical_accuracy: 0.8900

20/20 [==============================] - 0s 15ms/step - loss: 0.3228 - categorical_accuracy: 0.8900 
Epoch 125/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3373 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 899us/step - loss: 0.3214 - categorical_accuracy: 0.8900

20/20 [==============================] - 0s 15ms/step - loss: 0.3214 - categorical_accuracy: 0.8900 
Epoch 126/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3007 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 899us/step - loss: 0.3200 - categorical_accuracy: 0.8900

20/20 [==============================] - 0s 15ms/step - loss: 0.3200 - categorical_accuracy: 0.8900 
Epoch 127/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2923 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 999us/step - loss: 0.3186 - categorical_accuracy: 0.8900

20/20 [==============================] - 0s 16ms/step - loss: 0.3186 - categorical_accuracy: 0.8900 
Epoch 128/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5162 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.3173 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 16ms/step - loss: 0.3173 - categorical_accuracy: 0.9100
Epoch 129/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2486 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 900us/step - loss: 0.3160 - categorical_accuracy: 0.9200

20/20 [==============================] - 0s 14ms/step - loss: 0.3160 - categorical_accuracy: 0.9200 
Epoch 130/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4068 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.3148 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 15ms/step - loss: 0.3148 - categorical_accuracy: 0.9100
Epoch 131/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2719 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.3134 - categorical_accuracy: 0.9200

20/20 [==============================] - 0s 15ms/step - loss: 0.3134 - categorical_accuracy: 0.9200
Epoch 132/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3908 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 949us/step - loss: 0.3122 - categorical_accuracy: 0.9200

20/20 [==============================] - 0s 15ms/step - loss: 0.3122 - categorical_accuracy: 0.9200 
Epoch 133/150

 1/20 [>.............................] - ETA: 0s - loss: 0.1872 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 899us/step - loss: 0.3110 - categorical_accuracy: 0.9200

20/20 [==============================] - 0s 15ms/step - loss: 0.3110 - categorical_accuracy: 0.9200 
Epoch 134/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3690 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 999us/step - loss: 0.3096 - categorical_accuracy: 0.9200

20/20 [==============================] - 0s 15ms/step - loss: 0.3096 - categorical_accuracy: 0.9200 
Epoch 135/150

 1/20 [>.............................] - ETA: 0s - loss: 0.0857 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.3083 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 16ms/step - loss: 0.3083 - categorical_accuracy: 0.9100
Epoch 136/150

 1/20 [>.............................] - ETA: 0s - loss: 0.7575 - categorical_accuracy: 0.4000
20/20 [==============================] - 0s 899us/step - loss: 0.3071 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 15ms/step - loss: 0.3071 - categorical_accuracy: 0.9100 
Epoch 137/150

 1/20 [>.............................] - ETA: 0s - loss: 0.1244 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 999us/step - loss: 0.3057 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 15ms/step - loss: 0.3057 - categorical_accuracy: 0.9100 
Epoch 138/150

 1/20 [>.............................] - ETA: 0s - loss: 0.1868 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 999us/step - loss: 0.3046 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 15ms/step - loss: 0.3046 - categorical_accuracy: 0.9100 
Epoch 139/150

 1/20 [>.............................] - ETA: 0s - loss: 0.1200 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.3032 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 16ms/step - loss: 0.3032 - categorical_accuracy: 0.9100
Epoch 140/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2052 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 950us/step - loss: 0.3020 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 16ms/step - loss: 0.3020 - categorical_accuracy: 0.9100 
Epoch 141/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3182 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1ms/step - loss: 0.3009 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 15ms/step - loss: 0.3009 - categorical_accuracy: 0.9100
Epoch 142/150

 1/20 [>.............................] - ETA: 0s - loss: 0.6025 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.2996 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 15ms/step - loss: 0.2996 - categorical_accuracy: 0.9100
Epoch 143/150

 1/20 [>.............................] - ETA: 0s - loss: 0.5513 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 999us/step - loss: 0.2987 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 23ms/step - loss: 0.2987 - categorical_accuracy: 0.9100 
Epoch 144/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2904 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.2972 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 15ms/step - loss: 0.2972 - categorical_accuracy: 0.9100
Epoch 145/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2038 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 1000us/step - loss: 0.2960 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 15ms/step - loss: 0.2960 - categorical_accuracy: 0.9100  
Epoch 146/150

 1/20 [>.............................] - ETA: 0s - loss: 0.2101 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 949us/step - loss: 0.2948 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 16ms/step - loss: 0.2948 - categorical_accuracy: 0.9100 
Epoch 147/150

 1/20 [>.............................] - ETA: 0s - loss: 0.3084 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1ms/step - loss: 0.2938 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 16ms/step - loss: 0.2938 - categorical_accuracy: 0.9100
Epoch 148/150

 1/20 [>.............................] - ETA: 0s - loss: 0.0841 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 849us/step - loss: 0.2926 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 15ms/step - loss: 0.2926 - categorical_accuracy: 0.9100 
Epoch 149/150

 1/20 [>.............................] - ETA: 0s - loss: 0.1543 - categorical_accuracy: 1.0000
20/20 [==============================] - 0s 900us/step - loss: 0.2913 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 16ms/step - loss: 0.2913 - categorical_accuracy: 0.9100 
Epoch 150/150

 1/20 [>.............................] - ETA: 0s - loss: 0.4086 - categorical_accuracy: 0.8000
20/20 [==============================] - 0s 1000us/step - loss: 0.2902 - categorical_accuracy: 0.9100

20/20 [==============================] - 0s 16ms/step - loss: 0.2902 - categorical_accuracy: 0.9100  
#affichage des coefficients des fonctions de classement
get_weights(clf)
[[1]]
           [,1]       [,2]      [,3]
[1,] -1.0497619  0.3409576 0.6688545
[2,]  0.9783976 -0.6021847 0.1458578
[3,] -0.6815064 -0.5172638 0.5994269
[4,] -1.5415022 -0.0309065 0.9494050

[[2]]
[1] -0.5488543  0.6100321 -0.3406035

Prédiction en test

Transformation pour l’échantillon test

#centrage réduction avec les param. de l'éch. d'app.
ZTest <- scale(DTest[,1:4],center=attr(ZTrain,'scaled:center'),scale=attr(ZTrain,'scaled:scale'))
print(head(ZTest))
   Sepal.Length Sepal.Width Petal.Length Petal.Width
1    -0.9067672   0.9377975    -1.325155   -1.311320
3    -1.3790418   0.2954704    -1.380904   -1.311320
7    -1.4971105   0.7236885    -1.325155   -1.183386
11   -0.5525613   1.3660155    -1.269406   -1.311320
12   -1.2609732   0.7236885    -1.213657   -1.311320
21   -0.5525613   0.7236885    -1.157908   -1.311320

Prédiction des probas. d’appartenance

#appel de prédict
predProba <- clf %>% predict(ZTest)
head(predProba)
          [,1]       [,2]         [,3]
[1,] 0.9769587 0.02223093 0.0008103772
[2,] 0.9681911 0.03124197 0.0005668973
[3,] 0.9827694 0.01674477 0.0004857926
[4,] 0.9801548 0.01872154 0.0011237342
[5,] 0.9799248 0.01946552 0.0006096366
[6,] 0.9470140 0.05084803 0.0021379453

Conversion en prédiction

#identifier l'id du max dans chaque ligne
predClasses <- apply(predProba,1,function(v){which.max(v)})

#transformer en prédiction - Species d'iris
predClasses <- factor(predClasses)
levels(predClasses) <- levels(iris$Species)

#vérfication
head(predClasses)
[1] setosa setosa setosa setosa setosa setosa
Levels: setosa versicolor virginica

Evaluation

#matrice de confusion
mc <- table(DTest$Species,predClasses)
print(mc)
            predClasses
             setosa versicolor virginica
  setosa         17          0         0
  versicolor      0         13         3
  virginica       0          3        14
#taux d'erreur
err <- 1 - sum(diag(mc))/sum(mc)
print(err)
[1] 0.12
LS0tDQp0aXRsZTogIktlcmFzIC0gUsOpZ3Jlc3Npb24gbXVsdGlub21pYWxlIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KIyMgRGVzY3JpcHRpb24gZGVzIGRvbm7DqWVzICJpcmlzIg0KDQpgYGB7cn0NCiNkb25uw6llcyBpcmlzIGZyb20gcGFja2FnZSAiZGF0YXNldHMiDQpkYXRhKGlyaXMpDQoNCiNkZXNjcml0cGlvbg0Kc3RyKGlyaXMpDQpgYGANCg0KYGBge3J9DQojcHJlbWnDqHJlcyBsaWduZXMNCmhlYWQoaXJpcykNCmBgYA0KDQpgYGB7cn0NCiNub21icmUgZGUgbW9kYWxpdMOpcyBkZSBsYSBjaWJsZQ0KSyA8LSBubGV2ZWxzKGlyaXMkU3BlY2llcykNCnByaW50KEspDQpgYGANCg0KIyMgUGFydGl0aW9uIGFwcHJlbnRpc3NhZ2UtdGVzdA0KDQpgYGB7cn0NCiNpZCBwb3VyIGwnw6ljaGFudGlsbG9uIFRSQUlODQpzZXQuc2VlZCgyNDEyMjAyMCkNCmlkVHJhaW4gPC0gc2FtcGxlKDE6bnJvdyhpcmlzKSwxMDApDQpwcmludChpZFRyYWluKQ0KYGBgDQoNCmBgYHtyfQ0KI8OpY2guIGQnYXBwcmVudGlzc2FnZQ0KRFRyYWluIDwtIGlyaXNbaWRUcmFpbixdDQoNCiPDqWNoYW50aWxsb24gdGVzdA0KRFRlc3QgPC0gaXJpc1staWRUcmFpbixdDQoNCiNkaW1lbnNpb25zDQpwcmludChkaW0oRFRyYWluKSkNCnByaW50KGRpbShEVGVzdCkpDQpgYGANCg0KIyMgUHLDqXBhcmF0aW9uIGRlcyBkb25uw6llcw0KDQojIyMgU3RhbmRhcmRpc2F0aW9uIGRlcyB2YXIuIHByw6lkaWN0aXZlcw0KDQpgYGB7cn0NCiNzdGFuZGFyZGlzYXRpb24gZGVzIHZhci4gcHLDqWRpY3RpdmVzDQpaVHJhaW4gPC0gc2NhbGUoRFRyYWluWywxOjRdLGNlbnRlcj1UUlVFLHNjYWxlPVRSVUUpDQoNCiN2w6lyaWZpY2F0aW9ucw0KcHJpbnQoYXBwbHkoWlRyYWluLDIsbWVhbikpICNtb3llbm5lcw0KcHJpbnQoYXBwbHkoWlRyYWluLDIsc2QpKSAjw6ljYXJ0cy10eXBlDQpgYGANCg0KIyMjIFJlY29kYWdlIGVuIDAvMSBkZSBsYSB2YXJpYWJsZSBjaWJsZQ0KDQpgYGB7cn0NCiNyw6ljdXDDqXJhdGlvbiBlbiBjb2RlIGxhIHZhcmlhYmxlIGNpYmxlDQpjb2RlWVRyYWluIDwtIHVuY2xhc3MoRFRyYWluJFNwZWNpZXMpDQpwcmludChjb2RlWVRyYWluKQ0KYGBgDQoNCg0KYGBge3J9DQojcHLDqXBhcmF0aW9uIG1hdHJpY2UNCm1ZVHJhaW4gPC0gbWF0cml4KDAsbnJvdz1ucm93KERUcmFpbiksbmNvbD1LKQ0KDQojcmVtcGxpc3NhZ2UgZGUgMSBkYW5zIGxlcyBib25uZXMgY29sb25uZXMNCmZvciAoaSBpbiAxOm5yb3coRFRyYWluKSl7DQogIG1ZVHJhaW5baSxjb2RlWVRyYWluW2ldXSA8LSAxDQp9DQoNCiN2w6lyaWZpY2F0aW9uDQpwcmludChoZWFkKERUcmFpbiRTcGVjaWVzLDEwKSkNCiN2cy4NCnByaW50KGhlYWQobVlUcmFpbiwxMCkpDQpgYGANCg0KYGBge3J9DQojcmVtcGxpc3NhZ2UgbWF0cmljZQ0KbVlUcmFpbiA8LSB0KHNhcHBseSgxOm5yb3coRFRyYWluKSxmdW5jdGlvbihpKXt2IDwtIHJlcCgwLEspO3ZbY29kZVlUcmFpbltpXV0gPC0gMTtyZXR1cm4odil9KSkNCg0KI3bDqXJpZmljYXRpb24NCnByaW50KGhlYWQoRFRyYWluJFNwZWNpZXMsMTApKQ0KI3ZzLg0KcHJpbnQoaGVhZChtWVRyYWluLDEwKSkNCmBgYA0KDQpgYGB7cn0NCiNjb2RlcyBwb3NzaWJsZXMNCmNvZGVzUG9zc2libGVzIDwtIHNlcSgxLEspDQoNCiNvdSBlbmNvcmUgLSBzaSBvbiB2ZXV0IHZyYWltZW50IGR1IFIgcHVyaXN0ZSBkZSBjaGV6IHB1cmlzdGUNCm1ZVHJhaW4gPC0gMSp0KHNhcHBseShjb2RlWVRyYWluLGZ1bmN0aW9uKHYpeyhjb2Rlc1Bvc3NpYmxlcz09dil9KSkNCg0KI3bDqXJpZmljYXRpb24NCnByaW50KGhlYWQoRFRyYWluJFNwZWNpZXMsMTApKQ0KI3ZzLg0KcHJpbnQoaGVhZChtWVRyYWluLDEwKSkNCmBgYA0KDQojIyBNb2TDqWxpc2F0aW9uIGF2ZWMga2VyYXMNCg0KYGBge3J9DQojY2hhcmdlbWVudCBkZSBsYSBsaWJyYWlyaWUNCmxpYnJhcnkoa2VyYXMpDQoNCiNkw6lmaW5pdGlvbiBkZSBsYSBzdHJ1Y3R1cmUNCmNsZiA8LSBrZXJhczo6a2VyYXNfbW9kZWxfc2VxdWVudGlhbCgpDQpjbGYgJT4lIGxheWVyX2RlbnNlKHVuaXRzPUssaW5wdXRfc2hhcGU9bmNvbChaVHJhaW4pLGFjdGl2YXRpb249InNvZnRtYXgiKQ0KY2xmICU+JSBjb21waWxlKGxvc3M9ImNhdGVnb3JpY2FsX2Nyb3NzZW50cm9weSIsb3B0aW1pemVyPSJhZGFtIixtZXRyaWNzPSJjYXRlZ29yaWNhbF9hY2N1cmFjeSIpDQoNCiNsYW5jZW1lbnQgZGUgbGEgbW9kw6lsaXNhdGlvbg0KY2xmICU+JSBmaXQoeD1aVHJhaW4seT1tWVRyYWluLGVwb2Nocz0xNTAsYmF0Y2hfc2l6ZT01KQ0KYGBgDQoNCmBgYHtyfQ0KI2FmZmljaGFnZSBkZXMgY29lZmZpY2llbnRzIGRlcyBmb25jdGlvbnMgZGUgY2xhc3NlbWVudA0KZ2V0X3dlaWdodHMoY2xmKQ0KYGBgDQoNCiMjIFByw6lkaWN0aW9uIGVuIHRlc3QNCg0KIyMjIFRyYW5zZm9ybWF0aW9uIHBvdXIgbCfDqWNoYW50aWxsb24gdGVzdA0KDQpgYGB7cn0NCiNjZW50cmFnZSByw6lkdWN0aW9uIGF2ZWMgbGVzIHBhcmFtLiBkZSBsJ8OpY2guIGQnYXBwLg0KWlRlc3QgPC0gc2NhbGUoRFRlc3RbLDE6NF0sY2VudGVyPWF0dHIoWlRyYWluLCdzY2FsZWQ6Y2VudGVyJyksc2NhbGU9YXR0cihaVHJhaW4sJ3NjYWxlZDpzY2FsZScpKQ0KcHJpbnQoaGVhZChaVGVzdCkpDQpgYGANCg0KIyMjIFByw6lkaWN0aW9uIGRlcyBwcm9iYXMuIGQnYXBwYXJ0ZW5hbmNlDQoNCmBgYHtyfQ0KI2FwcGVsIGRlIHByw6lkaWN0DQpwcmVkUHJvYmEgPC0gY2xmICU+JSBwcmVkaWN0KFpUZXN0KQ0KaGVhZChwcmVkUHJvYmEpDQpgYGANCg0KIyMjIENvbnZlcnNpb24gZW4gcHLDqWRpY3Rpb24NCg0KYGBge3J9DQojaWRlbnRpZmllciBsJ2lkIGR1IG1heCBkYW5zIGNoYXF1ZSBsaWduZQ0KcHJlZENsYXNzZXMgPC0gYXBwbHkocHJlZFByb2JhLDEsZnVuY3Rpb24odil7d2hpY2gubWF4KHYpfSkNCg0KI3RyYW5zZm9ybWVyIGVuIHByw6lkaWN0aW9uIC0gU3BlY2llcyBkJ2lyaXMNCnByZWRDbGFzc2VzIDwtIGZhY3RvcihwcmVkQ2xhc3NlcykNCmxldmVscyhwcmVkQ2xhc3NlcykgPC0gbGV2ZWxzKGlyaXMkU3BlY2llcykNCg0KI3bDqXJmaWNhdGlvbg0KaGVhZChwcmVkQ2xhc3NlcykNCmBgYA0KDQojIyBFdmFsdWF0aW9uDQoNCmBgYHtyfQ0KI21hdHJpY2UgZGUgY29uZnVzaW9uDQptYyA8LSB0YWJsZShEVGVzdCRTcGVjaWVzLHByZWRDbGFzc2VzKQ0KcHJpbnQobWMpDQpgYGANCg0KYGBge3J9DQojdGF1eCBkJ2VycmV1cg0KZXJyIDwtIDEgLSBzdW0oZGlhZyhtYykpL3N1bShtYykNCnByaW50KGVycikNCmBgYA0K