library(keras)
library(tensorflow)
inpath = trainpath
dnall = list.files(inpath, full.names = FALSE)

#  define the classification objects 
clasobj_000 = "firefighter"
clasobj_001 = "doctor"
clasobj_002 = "engineer"
clasobj_003 = "farmer"
clasobj_004 = "chef"
# clasobj_005 = "mechanic"
# clasobj_006 = "waiter"


Img_000_dn = dnall[grep(clasobj_000, dnall)]
Img_001_dn = dnall[grep(clasobj_001, dnall)]
Img_002_dn = dnall[grep(clasobj_002, dnall)]
Img_003_dn = dnall[grep(clasobj_003, dnall)]
Img_004_dn = dnall[grep(clasobj_004, dnall)]
# Img_005_dn = dnall[grep(clasobj_005, dnall)]
# Img_006_dn = dnall[grep(clasobj_006, dnall)]

Random Sampling: Train data

use_train_imag = 40 
use_test_imag  = 40

getsample_Img_000_dn = getRandomSample(Img_000_dn, use_train_imag, use_test_imag  )
getsample_Img_001_dn = getRandomSample(Img_001_dn, use_train_imag, use_test_imag  )
getsample_Img_002_dn = getRandomSample(Img_002_dn, use_train_imag, use_test_imag  )
getsample_Img_003_dn = getRandomSample(Img_003_dn, use_train_imag, use_test_imag  )
getsample_Img_004_dn = getRandomSample(Img_004_dn, use_train_imag, use_test_imag  )
# getsample_Img_005_dn = getRandomSample(Img_005_dn, use_train_imag, use_test_imag  )
# getsample_Img_006_dn = getRandomSample(Img_006_dn, use_train_imag, use_test_imag  )
mypic_Train_FHCD =  c( Img_000_dn[sort(getsample_Img_000_dn[[1]])],
                       Img_001_dn[sort(getsample_Img_001_dn[[1]])],
                       Img_002_dn[sort(getsample_Img_002_dn[[1]])], 
                       Img_003_dn[sort(getsample_Img_003_dn[[1]])],
                       Img_004_dn[sort(getsample_Img_004_dn[[1]])]
                       # Img_005_dn[sort(getsample_Img_005_dn[[1]])]
                       # Img_006_dn[sort(getsample_Img_006_dn[[1]])]
                       )

Random Sampling: test data

mypic_Test_FHCD  =  c( Img_000_dn[sort(getsample_Img_000_dn[[2]])],
                       Img_001_dn[sort(getsample_Img_001_dn[[2]])],
                       Img_002_dn[sort(getsample_Img_002_dn[[2]])], 
                       Img_003_dn[sort(getsample_Img_003_dn[[2]])],
                       Img_004_dn[sort(getsample_Img_004_dn[[2]])]
                       # Img_005_dn[sort(getsample_Img_005_dn[[2]])]
                       # Img_006_dn[sort(getsample_Img_006_dn[[2]])]
                       )

+ image file : read, format to RGB, normalize and resize

+ 200 object Images for training

traincomb_FHCD = combine(trainImg_FHCD)
x = tile(traincomb_FHCD,20)
display(x, title ="Pictures")

+ 200 object Images for testing

testcomb_FHCD = combine(testImg_FHCD)
xy = tile(testcomb_FHCD,20)
display(xy, title ="Pictures")

+ Construct CNN Model

classifier_units = dim(trainLabels80)[2]

model = keras_model_sequential()

model %>%
  layer_conv_2d(filters = 32,
                kernel_size = c(3,3),
                activation = "relu",
                input_shape = c(100,100,3)) %>%
  layer_conv_2d(filters = 32,
                kernel_size = c(3,3),
                activation = "relu") %>%
  layer_max_pooling_2d(pool_size = c(2,2)) %>%
  # layer_dropout(rate = 0.25) %>%
  layer_conv_2d(filters = 64,
                kernel_size = c(3,3),
                activation = "relu") %>%
  # layer_conv_2d(filters = 64,
  #               kernel_size = c(3,3),
  #               activation = "relu") %>%
  layer_max_pooling_2d(pool_size = c(2,2)) %>%
  # layer_dropout(rate = 0.25) %>%
  layer_conv_2d(filters = 128,
                kernel_size = c(3,3),
                activation = "relu") %>%
  layer_conv_2d(filters = 128,
                kernel_size = c(3,3),
                activation = "relu") %>%
  layer_max_pooling_2d(pool_size = c(2,2)) %>%
  # layer_dropout(rate = 0.25) %>%
  # layer_conv_2d(filters = 256,
  #               kernel_size = c(3,3),
  #               activation = "relu") %>%
  layer_conv_2d(filters = 256,
                kernel_size = c(3,3),
                activation = "relu") %>%
  layer_max_pooling_2d(pool_size = c(2,2)) %>%
  # layer_dropout(rate = 0.25) %>%
  layer_flatten() %>%
  layer_dense(units = 128, activation = "relu")%>%
  layer_dropout(rate=0.1)%>%
  layer_dense(units = classifier_units, activation = "softmax") %>%

  compile(loss = "categorical_crossentropy",
          optimizer = optimizer_sgd(lr = 0.01,
                                     decay =1e-6,
                                     momentum = 0.9,
                                     nesterov=T),
          metrics = c("accuracy"))
summary(model)
## ___________________________________________________________________________
## Layer (type)                     Output Shape                  Param #     
## ===========================================================================
## conv2d (Conv2D)                  (None, 98, 98, 32)            896         
## ___________________________________________________________________________
## conv2d_1 (Conv2D)                (None, 96, 96, 32)            9248        
## ___________________________________________________________________________
## max_pooling2d (MaxPooling2D)     (None, 48, 48, 32)            0           
## ___________________________________________________________________________
## conv2d_2 (Conv2D)                (None, 46, 46, 64)            18496       
## ___________________________________________________________________________
## max_pooling2d_1 (MaxPooling2D)   (None, 23, 23, 64)            0           
## ___________________________________________________________________________
## conv2d_3 (Conv2D)                (None, 21, 21, 128)           73856       
## ___________________________________________________________________________
## conv2d_4 (Conv2D)                (None, 19, 19, 128)           147584      
## ___________________________________________________________________________
## max_pooling2d_2 (MaxPooling2D)   (None, 9, 9, 128)             0           
## ___________________________________________________________________________
## conv2d_5 (Conv2D)                (None, 7, 7, 256)             295168      
## ___________________________________________________________________________
## max_pooling2d_3 (MaxPooling2D)   (None, 3, 3, 256)             0           
## ___________________________________________________________________________
## flatten (Flatten)                (None, 2304)                  0           
## ___________________________________________________________________________
## dense (Dense)                    (None, 128)                   295040      
## ___________________________________________________________________________
## dropout (Dropout)                (None, 128)                   0           
## ___________________________________________________________________________
## dense_1 (Dense)                  (None, 5)                     645         
## ===========================================================================
## Total params: 840,933
## Trainable params: 840,933
## Non-trainable params: 0
## ___________________________________________________________________________

+ fit model : first run: 500 epochs

Epochs_number_set = 500
validation_split_set = 0.1
Batch_size_set = tot_trainImg*(1-validation_split_set)


TrainResult80 = model %>%
              fit(traincomb_FHCD_df  ,
                  trainLabels80,
                  epochs = Epochs_number_set,
                  batch_size = Batch_size_set,
                  validation_split = validation_split_set)

+ evaluation and prediction for train data

model %>% evaluate(traincomb_FHCD_df, trainLabels80)
## $loss
## [1] 1.242268
## 
## $acc
## [1] 0.9
pred = model %>% predict_classes(traincomb_FHCD_df)

table(PredictCls = pred, ActualCls = trainme80)
##           ActualCls
## PredictCls  0  1  2  3  4
##          0 40  0  0  0  9
##          1  0 40  0  0  5
##          2  0  0 40  0  3
##          3  0  0  0 40  3
##          4  0  0  0  0 20
prob = model %>% predict_proba(traincomb_FHCD_df)

predtrain.df = data.frame(cbind(1:tot_trainImg, round(prob, 4)*100, PredCls = pred, ActuCls = trainme80))
Confusion Matrix: Train Data
Predicted
Actual Class
0 1 2 3 4
0 40 0 0 0 9
1 0 40 0 0 5
2 0 0 40 0 3
3 0 0 0 40 3
4 0 0 0 0 20
Note:
overall_accuracy = 180 units
Confusion Matrix: Train Data in Percentage
Predicted
Actual Class(%)
0 1 2 3 4
0 100 0 0 0 22.5
1 0 100 0 0 12.5
2 0 0 100 0 7.5
3 0 0 0 100 7.5
4 0 0 0 0 50.0
Note:
overall_accuracy = 90 %
Index Prb_firefighter Prb_doctor Prb_engineer Prb_farmer Prb_chef PredCls ActuCls ActuObjs
1 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
2 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
3 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
4 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
5 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
6 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
7 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
8 99.91 0.00 0.08 0.01 0.00 0 0 firefighter
9 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
10 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
11 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
12 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
13 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
14 99.99 0.00 0.01 0.00 0.00 0 0 firefighter
15 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
16 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
17 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
18 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
19 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
20 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
21 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
22 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
23 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
24 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
25 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
26 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
27 99.92 0.00 0.01 0.06 0.00 0 0 firefighter
28 99.99 0.00 0.00 0.01 0.00 0 0 firefighter
29 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
30 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
31 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
32 99.90 0.00 0.00 0.10 0.00 0 0 firefighter
33 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
34 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
35 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
36 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
37 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
38 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
39 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
40 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
41 0.00 99.99 0.00 0.00 0.01 1 1 doctor
42 0.00 100.00 0.00 0.00 0.00 1 1 doctor
43 0.00 100.00 0.00 0.00 0.00 1 1 doctor
44 0.00 99.99 0.00 0.00 0.01 1 1 doctor
45 0.00 100.00 0.00 0.00 0.00 1 1 doctor
46 0.00 100.00 0.00 0.00 0.00 1 1 doctor
47 0.00 100.00 0.00 0.00 0.00 1 1 doctor
48 0.00 100.00 0.00 0.00 0.00 1 1 doctor
49 0.00 100.00 0.00 0.00 0.00 1 1 doctor
50 0.00 100.00 0.00 0.00 0.00 1 1 doctor
51 0.00 99.99 0.00 0.00 0.01 1 1 doctor
52 0.00 100.00 0.00 0.00 0.00 1 1 doctor
53 0.00 100.00 0.00 0.00 0.00 1 1 doctor
54 0.00 100.00 0.00 0.00 0.00 1 1 doctor
55 0.00 100.00 0.00 0.00 0.00 1 1 doctor
56 0.00 100.00 0.00 0.00 0.00 1 1 doctor
57 0.00 99.99 0.00 0.00 0.00 1 1 doctor
58 0.00 100.00 0.00 0.00 0.00 1 1 doctor
59 0.00 100.00 0.00 0.00 0.00 1 1 doctor
60 0.00 99.99 0.01 0.00 0.00 1 1 doctor
61 0.00 100.00 0.00 0.00 0.00 1 1 doctor
62 0.00 99.95 0.05 0.00 0.00 1 1 doctor
63 0.00 100.00 0.00 0.00 0.00 1 1 doctor
64 0.00 100.00 0.00 0.00 0.00 1 1 doctor
65 0.00 100.00 0.00 0.00 0.00 1 1 doctor
66 0.00 100.00 0.00 0.00 0.00 1 1 doctor
67 0.00 100.00 0.00 0.00 0.00 1 1 doctor
68 0.00 100.00 0.00 0.00 0.00 1 1 doctor
69 0.00 100.00 0.00 0.00 0.00 1 1 doctor
70 0.00 100.00 0.00 0.00 0.00 1 1 doctor
71 0.00 100.00 0.00 0.00 0.00 1 1 doctor
72 0.00 100.00 0.00 0.00 0.00 1 1 doctor
73 0.00 100.00 0.00 0.00 0.00 1 1 doctor
74 0.00 100.00 0.00 0.00 0.00 1 1 doctor
75 0.00 100.00 0.00 0.00 0.00 1 1 doctor
76 0.00 100.00 0.00 0.00 0.00 1 1 doctor
77 0.00 100.00 0.00 0.00 0.00 1 1 doctor
78 0.00 100.00 0.00 0.00 0.00 1 1 doctor
79 0.00 100.00 0.00 0.00 0.00 1 1 doctor
80 0.00 100.00 0.00 0.00 0.00 1 1 doctor
81 0.00 0.00 100.00 0.00 0.00 2 2 engineer
82 0.00 0.00 100.00 0.00 0.00 2 2 engineer
83 0.00 0.00 100.00 0.00 0.00 2 2 engineer
84 0.00 0.00 100.00 0.00 0.00 2 2 engineer
85 0.00 0.01 99.99 0.01 0.00 2 2 engineer
86 0.00 0.00 100.00 0.00 0.00 2 2 engineer
87 0.00 0.00 100.00 0.00 0.00 2 2 engineer
88 0.00 0.00 100.00 0.00 0.00 2 2 engineer
89 0.00 0.00 100.00 0.00 0.00 2 2 engineer
90 0.01 0.00 99.99 0.00 0.00 2 2 engineer
91 0.00 0.00 100.00 0.00 0.00 2 2 engineer
92 0.00 0.00 100.00 0.00 0.00 2 2 engineer
93 0.00 0.00 100.00 0.00 0.00 2 2 engineer
94 0.00 0.00 100.00 0.00 0.00 2 2 engineer
95 0.00 0.00 100.00 0.00 0.00 2 2 engineer
96 0.00 0.00 100.00 0.00 0.00 2 2 engineer
97 0.00 0.00 100.00 0.00 0.00 2 2 engineer
98 0.00 0.00 100.00 0.00 0.00 2 2 engineer
99 0.00 0.00 100.00 0.00 0.00 2 2 engineer
100 0.00 0.00 100.00 0.00 0.00 2 2 engineer
101 0.00 0.00 100.00 0.00 0.00 2 2 engineer
102 0.00 0.00 100.00 0.00 0.00 2 2 engineer
103 0.02 0.00 99.98 0.00 0.00 2 2 engineer
104 0.00 0.00 100.00 0.00 0.00 2 2 engineer
105 0.00 0.00 100.00 0.00 0.00 2 2 engineer
106 0.00 0.00 100.00 0.00 0.00 2 2 engineer
107 0.00 0.00 100.00 0.00 0.00 2 2 engineer
108 0.00 0.00 100.00 0.00 0.00 2 2 engineer
109 0.00 0.00 100.00 0.00 0.00 2 2 engineer
110 0.00 0.00 100.00 0.00 0.00 2 2 engineer
111 0.00 0.00 100.00 0.00 0.00 2 2 engineer
112 0.00 0.00 100.00 0.00 0.00 2 2 engineer
113 0.00 0.00 100.00 0.00 0.00 2 2 engineer
114 0.00 0.00 100.00 0.00 0.00 2 2 engineer
115 0.00 0.00 99.98 0.01 0.00 2 2 engineer
116 0.01 0.00 99.99 0.00 0.00 2 2 engineer
117 0.00 0.00 100.00 0.00 0.00 2 2 engineer
118 0.00 0.00 100.00 0.00 0.00 2 2 engineer
119 0.00 0.00 100.00 0.00 0.00 2 2 engineer
120 0.00 0.00 100.00 0.00 0.00 2 2 engineer
121 0.00 0.00 0.00 100.00 0.00 3 3 farmer
122 0.00 0.00 0.00 100.00 0.00 3 3 farmer
123 0.00 0.00 0.00 100.00 0.00 3 3 farmer
124 0.00 0.00 0.00 100.00 0.00 3 3 farmer
125 0.00 0.00 0.00 100.00 0.00 3 3 farmer
126 0.01 0.00 0.01 99.98 0.00 3 3 farmer
127 0.00 0.00 0.01 99.99 0.00 3 3 farmer
128 0.00 0.00 0.00 100.00 0.00 3 3 farmer
129 0.01 0.00 0.02 99.97 0.00 3 3 farmer
130 0.00 0.00 0.00 100.00 0.00 3 3 farmer
131 0.00 0.00 0.00 100.00 0.00 3 3 farmer
132 0.00 0.00 0.00 100.00 0.00 3 3 farmer
133 0.00 0.00 0.00 99.99 0.01 3 3 farmer
134 0.06 0.00 0.01 99.92 0.01 3 3 farmer
135 0.00 0.00 0.00 100.00 0.00 3 3 farmer
136 0.00 0.00 0.00 100.00 0.00 3 3 farmer
137 0.00 0.00 0.00 100.00 0.00 3 3 farmer
138 0.00 0.00 0.00 100.00 0.00 3 3 farmer
139 0.00 0.00 0.00 100.00 0.00 3 3 farmer
140 0.00 0.00 0.00 100.00 0.00 3 3 farmer
141 0.00 0.00 0.00 100.00 0.00 3 3 farmer
142 0.00 0.00 0.00 100.00 0.00 3 3 farmer
143 0.00 0.00 0.00 100.00 0.00 3 3 farmer
144 0.00 0.00 0.00 100.00 0.00 3 3 farmer
145 0.00 0.00 0.00 100.00 0.00 3 3 farmer
146 0.00 0.00 0.00 100.00 0.00 3 3 farmer
147 0.00 0.00 0.00 100.00 0.00 3 3 farmer
148 0.00 0.00 0.00 100.00 0.00 3 3 farmer
149 0.00 0.00 0.00 100.00 0.00 3 3 farmer
150 0.00 0.00 0.00 100.00 0.00 3 3 farmer
151 0.02 0.00 0.04 99.90 0.05 3 3 farmer
152 0.00 0.00 0.00 100.00 0.00 3 3 farmer
153 0.00 0.00 0.00 100.00 0.00 3 3 farmer
154 0.31 0.00 0.02 99.64 0.02 3 3 farmer
155 0.00 0.00 0.01 99.99 0.00 3 3 farmer
156 0.00 0.00 0.01 99.98 0.01 3 3 farmer
157 0.00 0.00 0.00 100.00 0.00 3 3 farmer
158 0.00 0.00 0.00 100.00 0.00 3 3 farmer
159 0.00 0.00 0.00 100.00 0.00 3 3 farmer
160 0.00 0.00 0.00 100.00 0.00 3 3 farmer
161 0.00 0.00 0.00 0.00 100.00 4 4 chef
162 0.00 0.00 0.00 0.00 100.00 4 4 chef
163 0.00 0.00 0.00 0.00 100.00 4 4 chef
164 0.00 0.00 0.00 0.00 100.00 4 4 chef
165 0.00 0.00 0.00 0.00 100.00 4 4 chef
166 0.00 0.00 0.00 0.00 100.00 4 4 chef
167 0.00 0.00 0.00 0.00 100.00 4 4 chef
168 0.00 0.00 0.00 0.00 100.00 4 4 chef
169 0.00 0.00 0.00 0.00 100.00 4 4 chef
170 0.00 0.00 0.00 0.00 100.00 4 4 chef
171 0.00 0.02 0.00 0.00 99.98 4 4 chef
172 0.00 0.00 0.00 0.00 100.00 4 4 chef
173 0.00 0.00 0.00 0.00 100.00 4 4 chef
174 0.00 0.00 0.00 0.00 100.00 4 4 chef
175 0.00 0.00 0.00 0.00 100.00 4 4 chef
176 0.00 0.00 0.00 0.00 100.00 4 4 chef
177 0.00 0.00 0.00 0.00 100.00 4 4 chef
178 0.00 0.00 0.00 0.00 100.00 4 4 chef
179 0.00 0.00 0.01 0.05 99.94 4 4 chef
180 0.00 0.00 0.00 0.00 100.00 4 4 chef
181 100.00 0.00 0.00 0.00 0.00 0 4 chef
182 0.00 100.00 0.00 0.00 0.00 1 4 chef
183 0.00 99.75 0.06 0.03 0.16 1 4 chef
184 0.00 99.61 0.00 0.00 0.39 1 4 chef
185 0.00 0.00 9.78 90.20 0.02 3 4 chef
186 99.97 0.00 0.00 0.03 0.00 0 4 chef
187 99.82 0.00 0.18 0.00 0.00 0 4 chef
188 0.00 13.66 84.04 2.29 0.00 2 4 chef
189 99.97 0.03 0.00 0.00 0.00 0 4 chef
190 0.00 0.17 99.82 0.01 0.00 2 4 chef
191 99.58 0.00 0.00 0.41 0.00 0 4 chef
192 0.00 60.96 0.00 0.00 39.04 1 4 chef
193 100.00 0.00 0.00 0.00 0.00 0 4 chef
194 36.48 0.00 44.45 19.07 0.00 2 4 chef
195 0.54 2.10 0.00 62.49 34.86 3 4 chef
196 0.00 100.00 0.00 0.00 0.00 1 4 chef
197 97.07 0.00 0.00 0.00 2.93 0 4 chef
198 0.00 0.00 0.00 100.00 0.00 3 4 chef
199 100.00 0.00 0.00 0.00 0.00 0 4 chef
200 99.96 0.04 0.00 0.00 0.00 0 4 chef

+ evaluation and prediction - test data

model %>% evaluate(testcomb_FHCD_df, testLabels60)
## $loss
## [1] 5.877803
## 
## $acc
## [1] 0.44
pred = model %>% predict_classes(testcomb_FHCD_df)

table(PredictCls = pred, ActualCls = testme60)
##           ActualCls
## PredictCls  0  1  2  3  4
##          0 19  0  7  8  9
##          1  4 28  8  3 10
##          2  8  8 16  9  6
##          3  8  2  5 16  6
##          4  1  2  4  4  9
prob = model %>% predict_proba(testcomb_FHCD_df)

predtrain.df = data.frame(cbind(1:tot_testImg, round(prob, 4)*100, PredCls = pred, ActuCls = testme60))
Confusion Matrix: Test Data
Predicted
Actual Class
0 1 2 3 4
0 19 0 7 8 9
1 4 28 8 3 10
2 8 8 16 9 6
3 8 2 5 16 6
4 1 2 4 4 9
Note:
overall_accuracy = 88 units
Confusion Matrix: Test Data in Percentage
Predicted
Actual Class(%)
0 1 2 3 4
0 47.5 0 17.5 20.0 22.5
1 10.0 70 20.0 7.5 25.0
2 20.0 20 40.0 22.5 15.0
3 20.0 5 12.5 40.0 15.0
4 2.5 5 10.0 10.0 22.5
Note:
overall_accuracy = 44 %
Index Prb_firefighter Prb_doctor Prb_engineer Prb_farmer Prb_chef PredCls ActuCls ActuObjs
1 29.67 0.00 4.24 66.09 0.00 3 0 firefighter
2 0.00 0.00 48.35 51.65 0.00 3 0 firefighter
3 9.21 0.00 0.24 90.43 0.11 3 0 firefighter
4 0.64 0.00 20.15 79.21 0.00 3 0 firefighter
5 2.98 0.00 0.25 96.66 0.10 3 0 firefighter
6 65.66 0.00 1.17 33.18 0.00 0 0 firefighter
7 99.96 0.00 0.03 0.01 0.00 0 0 firefighter
8 0.47 0.00 0.06 99.45 0.03 3 0 firefighter
9 98.86 0.00 1.14 0.00 0.00 0 0 firefighter
10 98.05 0.00 1.95 0.00 0.00 0 0 firefighter
11 0.00 0.00 100.00 0.00 0.00 2 0 firefighter
12 14.11 0.01 2.25 81.74 1.88 3 0 firefighter
13 0.00 0.00 0.00 100.00 0.00 3 0 firefighter
14 90.61 0.00 9.39 0.00 0.00 0 0 firefighter
15 0.08 99.92 0.00 0.00 0.00 1 0 firefighter
16 0.00 5.80 0.16 0.00 94.04 4 0 firefighter
17 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
18 8.47 0.00 91.53 0.00 0.00 2 0 firefighter
19 0.00 100.00 0.00 0.00 0.00 1 0 firefighter
20 98.70 0.00 1.30 0.00 0.00 0 0 firefighter
21 0.46 0.00 99.54 0.00 0.00 2 0 firefighter
22 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
23 71.21 0.00 22.38 6.42 0.00 0 0 firefighter
24 1.77 0.00 98.17 0.06 0.00 2 0 firefighter
25 99.95 0.00 0.02 0.01 0.02 0 0 firefighter
26 0.00 0.00 71.63 28.37 0.00 2 0 firefighter
27 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
28 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
29 93.05 0.00 0.05 6.90 0.01 0 0 firefighter
30 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
31 99.88 0.00 0.12 0.00 0.00 0 0 firefighter
32 0.16 95.27 0.08 0.01 4.47 1 0 firefighter
33 99.25 0.00 0.71 0.03 0.00 0 0 firefighter
34 33.09 0.00 63.68 3.23 0.00 2 0 firefighter
35 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
36 0.27 0.03 99.70 0.00 0.00 2 0 firefighter
37 0.00 100.00 0.00 0.00 0.00 1 0 firefighter
38 10.89 0.00 89.11 0.00 0.00 2 0 firefighter
39 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
40 100.00 0.00 0.00 0.00 0.00 0 0 firefighter
41 0.00 100.00 0.00 0.00 0.00 1 1 doctor
42 0.00 0.62 98.76 0.54 0.08 2 1 doctor
43 0.00 0.00 10.95 88.56 0.49 3 1 doctor
44 0.02 0.00 4.33 72.90 22.75 3 1 doctor
45 0.00 100.00 0.00 0.00 0.00 1 1 doctor
46 0.00 100.00 0.00 0.00 0.00 1 1 doctor
47 0.00 100.00 0.00 0.00 0.00 1 1 doctor
48 0.00 93.91 6.09 0.00 0.00 1 1 doctor
49 0.00 100.00 0.00 0.00 0.00 1 1 doctor
50 0.00 99.95 0.01 0.00 0.04 1 1 doctor
51 0.00 98.61 0.00 0.00 1.39 1 1 doctor
52 0.00 0.18 99.81 0.01 0.00 2 1 doctor
53 30.61 0.29 69.09 0.01 0.00 2 1 doctor
54 0.00 100.00 0.00 0.00 0.00 1 1 doctor
55 0.00 100.00 0.00 0.00 0.00 1 1 doctor
56 0.00 100.00 0.00 0.00 0.00 1 1 doctor
57 0.00 99.99 0.01 0.00 0.00 1 1 doctor
58 0.00 99.92 0.08 0.00 0.00 1 1 doctor
59 0.00 100.00 0.00 0.00 0.00 1 1 doctor
60 0.00 99.94 0.00 0.00 0.06 1 1 doctor
61 0.00 85.65 14.35 0.00 0.00 1 1 doctor
62 0.00 100.00 0.00 0.00 0.00 1 1 doctor
63 0.00 99.94 0.00 0.00 0.06 1 1 doctor
64 0.00 100.00 0.00 0.00 0.00 1 1 doctor
65 0.00 1.50 0.00 0.00 98.50 4 1 doctor
66 0.00 100.00 0.00 0.00 0.00 1 1 doctor
67 0.00 0.00 100.00 0.00 0.00 2 1 doctor
68 0.00 66.54 33.46 0.00 0.00 1 1 doctor
69 0.00 100.00 0.00 0.00 0.00 1 1 doctor
70 0.01 0.00 99.99 0.00 0.00 2 1 doctor
71 0.00 100.00 0.00 0.00 0.00 1 1 doctor
72 0.00 100.00 0.00 0.00 0.00 1 1 doctor
73 0.00 97.87 2.13 0.00 0.00 1 1 doctor
74 0.00 0.00 0.00 36.17 63.83 4 1 doctor
75 0.00 47.69 52.31 0.00 0.00 2 1 doctor
76 0.00 92.27 2.13 0.03 5.58 1 1 doctor
77 0.00 0.38 99.62 0.00 0.00 2 1 doctor
78 0.00 100.00 0.00 0.00 0.00 1 1 doctor
79 0.00 13.72 86.28 0.00 0.00 2 1 doctor
80 0.00 100.00 0.00 0.00 0.00 1 1 doctor
81 0.01 27.11 0.01 0.65 72.22 4 2 engineer
82 0.00 100.00 0.00 0.00 0.00 1 2 engineer
83 0.07 0.03 71.74 28.16 0.00 2 2 engineer
84 0.00 98.31 0.00 0.00 1.69 1 2 engineer
85 0.00 0.00 100.00 0.00 0.00 2 2 engineer
86 55.38 0.00 44.56 0.07 0.00 0 2 engineer
87 0.00 99.96 0.04 0.00 0.00 1 2 engineer
88 0.00 84.92 15.08 0.00 0.00 1 2 engineer
89 4.21 95.21 0.59 0.00 0.00 1 2 engineer
90 0.00 0.00 98.22 1.77 0.00 2 2 engineer
91 0.00 100.00 0.00 0.00 0.00 1 2 engineer
92 0.00 60.82 14.06 0.00 25.13 1 2 engineer
93 0.00 40.99 58.95 0.00 0.05 2 2 engineer
94 0.00 0.00 100.00 0.00 0.00 2 2 engineer
95 100.00 0.00 0.00 0.00 0.00 0 2 engineer
96 0.04 0.00 99.92 0.04 0.00 2 2 engineer
97 56.49 0.01 43.50 0.00 0.00 0 2 engineer
98 19.41 0.00 80.49 0.10 0.00 2 2 engineer
99 22.09 0.00 77.40 0.51 0.00 2 2 engineer
100 100.00 0.00 0.00 0.00 0.00 0 2 engineer
101 2.12 0.00 97.54 0.34 0.00 2 2 engineer
102 0.00 0.00 0.00 0.00 100.00 4 2 engineer
103 100.00 0.00 0.00 0.00 0.00 0 2 engineer
104 100.00 0.00 0.00 0.00 0.00 0 2 engineer
105 0.00 97.86 0.01 0.00 2.13 1 2 engineer
106 0.00 0.00 0.00 4.59 95.41 4 2 engineer
107 1.96 7.67 90.33 0.03 0.02 2 2 engineer
108 1.31 0.00 98.69 0.00 0.00 2 2 engineer
109 0.00 0.00 100.00 0.00 0.00 2 2 engineer
110 0.00 0.02 0.01 0.00 99.97 4 2 engineer
111 0.24 0.15 27.84 58.96 12.81 3 2 engineer
112 0.00 0.00 0.00 100.00 0.00 3 2 engineer
113 0.31 0.00 0.00 99.69 0.00 3 2 engineer
114 88.24 0.00 0.00 11.75 0.01 0 2 engineer
115 0.01 0.00 0.01 99.98 0.00 3 2 engineer
116 0.00 0.00 100.00 0.00 0.00 2 2 engineer
117 0.00 0.00 100.00 0.00 0.00 2 2 engineer
118 0.00 0.00 100.00 0.00 0.00 2 2 engineer
119 1.48 0.00 95.88 2.64 0.00 2 2 engineer
120 0.00 0.01 0.00 79.79 20.20 3 2 engineer
121 4.60 94.14 1.26 0.00 0.00 1 3 farmer
122 0.00 0.00 3.59 96.41 0.00 3 3 farmer
123 0.01 0.00 99.88 0.12 0.00 2 3 farmer
124 0.00 0.00 0.41 1.03 98.57 4 3 farmer
125 99.39 0.00 0.00 0.61 0.00 0 3 farmer
126 0.00 0.00 99.97 0.03 0.00 2 3 farmer
127 46.77 0.50 25.56 0.00 27.17 0 3 farmer
128 0.00 0.00 95.86 4.14 0.00 2 3 farmer
129 0.00 0.00 0.05 99.95 0.00 3 3 farmer
130 99.17 0.83 0.00 0.00 0.00 0 3 farmer
131 0.00 0.00 0.00 100.00 0.00 3 3 farmer
132 0.00 53.56 1.63 1.88 42.92 1 3 farmer
133 0.00 0.00 0.51 99.49 0.00 3 3 farmer
134 0.00 0.00 99.91 0.09 0.00 2 3 farmer
135 3.05 0.00 0.00 96.95 0.00 3 3 farmer
136 6.99 0.00 90.79 2.22 0.00 2 3 farmer
137 0.00 0.00 0.00 0.00 100.00 4 3 farmer
138 0.01 0.00 3.86 96.13 0.00 3 3 farmer
139 91.57 0.06 8.37 0.00 0.00 0 3 farmer
140 94.01 0.00 5.99 0.00 0.00 0 3 farmer
141 100.00 0.00 0.00 0.00 0.00 0 3 farmer
142 0.00 1.16 0.00 0.00 98.84 4 3 farmer
143 0.00 99.18 0.03 0.01 0.78 1 3 farmer
144 0.01 49.56 50.43 0.00 0.00 2 3 farmer
145 84.36 0.01 4.31 11.19 0.13 0 3 farmer
146 0.01 0.00 99.99 0.00 0.00 2 3 farmer
147 0.00 0.00 0.00 100.00 0.00 3 3 farmer
148 0.00 0.00 0.01 99.99 0.00 3 3 farmer
149 0.00 0.00 0.00 0.00 100.00 4 3 farmer
150 0.00 4.76 95.24 0.00 0.00 2 3 farmer
151 0.00 0.00 0.01 99.99 0.00 3 3 farmer
152 21.59 0.00 51.87 26.54 0.00 2 3 farmer
153 0.00 0.00 0.72 99.28 0.00 3 3 farmer
154 99.99 0.00 0.01 0.00 0.00 0 3 farmer
155 16.04 0.00 0.85 82.49 0.62 3 3 farmer
156 0.28 0.00 38.37 61.35 0.00 3 3 farmer
157 0.00 0.00 0.00 100.00 0.00 3 3 farmer
158 0.00 0.00 0.19 99.81 0.00 3 3 farmer
159 0.02 0.00 0.02 99.96 0.00 3 3 farmer
160 0.00 0.00 0.00 100.00 0.00 3 3 farmer
161 0.00 20.69 0.00 0.00 79.31 4 4 chef
162 0.00 0.00 100.00 0.00 0.00 2 4 chef
163 0.00 100.00 0.00 0.00 0.00 1 4 chef
164 0.00 0.00 0.00 100.00 0.00 3 4 chef
165 0.00 8.20 0.00 20.54 71.26 4 4 chef
166 0.06 95.42 0.00 0.07 4.45 1 4 chef
167 9.08 8.12 0.00 0.00 82.79 4 4 chef
168 16.88 0.00 2.54 80.57 0.00 3 4 chef
169 0.00 0.00 0.00 100.00 0.00 3 4 chef
170 0.10 3.02 0.00 0.00 96.87 4 4 chef
171 3.73 0.05 96.22 0.00 0.00 2 4 chef
172 96.26 3.74 0.00 0.00 0.00 0 4 chef
173 0.00 0.51 0.00 0.00 99.48 4 4 chef
174 0.00 99.92 0.00 0.00 0.08 1 4 chef
175 30.51 69.42 0.06 0.00 0.00 1 4 chef
176 0.00 0.00 93.52 6.48 0.00 2 4 chef
177 0.00 0.00 0.00 0.00 100.00 4 4 chef
178 0.00 0.00 0.00 0.00 100.00 4 4 chef
179 0.00 99.92 0.00 0.00 0.08 1 4 chef
180 0.00 0.00 0.00 0.32 99.68 4 4 chef
181 0.00 0.00 99.19 0.81 0.00 2 4 chef
182 99.08 0.00 0.00 0.11 0.80 0 4 chef
183 3.47 0.00 0.00 96.52 0.01 3 4 chef
184 0.00 99.99 0.00 0.00 0.01 1 4 chef
185 0.00 98.50 1.50 0.00 0.00 1 4 chef
186 100.00 0.00 0.00 0.00 0.00 0 4 chef
187 96.52 0.00 3.48 0.00 0.00 0 4 chef
188 93.09 0.01 6.64 0.20 0.06 0 4 chef
189 0.05 0.00 0.61 99.33 0.00 3 4 chef
190 98.86 0.00 1.14 0.00 0.00 0 4 chef
191 100.00 0.00 0.00 0.00 0.00 0 4 chef
192 0.00 0.00 0.00 0.00 100.00 4 4 chef
193 100.00 0.00 0.00 0.00 0.00 0 4 chef
194 100.00 0.00 0.00 0.00 0.00 0 4 chef
195 0.00 0.10 99.90 0.00 0.00 2 4 chef
196 0.00 0.00 98.60 1.40 0.00 2 4 chef
197 0.00 99.98 0.00 0.00 0.02 1 4 chef
198 26.25 73.27 0.01 0.45 0.02 1 4 chef
199 0.00 100.00 0.00 0.00 0.00 1 4 chef
200 0.00 0.00 0.01 99.99 0.00 3 4 chef

Hardware configures:

total_run_time = round(end_time - start_time, 3)
total_run_time
## Time difference of 25.071 mins