## 2 Materials and Methods
### Artificial Neural Network  
Artificial Neural Network is a computational model which depends on the neural structure of the brain. The outcome from the neural network is dependent on the features or inputs (Figure 5a) provided to it and the various parameters in the neural network. From Figure 5a, Feature 1, Feature 2, Feature 3, and Feature 4 represent the input samples while the target represents the output sample. In this current work, we designed a three-layered ANN [17], which includes input layer, Hidden Layer, and Output Layer as shown in Figure 5b. Figure 5: (**a**) Structure of a Neural Network; (**b**) A Three-layered Artificial Neural Network. In order to build neural networks, the following properties must be taken into consideration [28]:  
* A set of inputs (1,..., n) (i). * A set of outputs (1,..., m). * Number of Hidden Layers. * Number of neurons in each Hidden Layer. * Bias for each neuron in the Hidden Layer (s) and Output Layer (\(b_{k}\)). * Weights of the bias in the Hidden Layer (s) and Output Layer (\(v_{k}\)). * Weights connecting neurons (w). Therefore, the mathematical relation between these properties is given as:  
\[\left(\sum_{m}^{n}i_{m}w_{m}\right)+\ b_{k}v_{k} \tag{12}\]  
The implementation of the ANN model was achieved by using Keras ([[https://keras.io/](https://keras.io/)]([https://keras.io/](https://keras.io/))). Keras is high-level neural networks Application Programming Interface (API) which was written in Python. It was built with a focus on enabling fast experimentation. The steps that were followed in developing the ANN model in this study, as summarized in Figure 7 were:  
* STEP 1: Defining the network--We defined the model as a sequence of layers by using the sequential class in Keras. The sequential class serves as the container for the subsequent layers. In this current work, we built two architectures, which were, 3-6-6-1 network and 3-20-20-1 network as shown in Figure 6a, b respectively. Both the Hidden Layers were activated using the Rectified Linear Unit function (ReLu). The Output Layer was activated by using the sigmoid function, which is better when dealing with binary classification. The activation functions transform a summed signal from each neuron in a layer by extracting and adding to the sequential as a layer-like object. This was achieved by using the Activation class in Keras. In total, we observed a trainable parameter of 73 for the 3-6-6-1 network as shown in Figure 8a, and in the 3-20-20-1 network, we observed trainable parameters of 521 as shown in Figure 8b. * STEP 2: Compile the network--After defining the network, we then compiled it. This step is efficient since it transforms the simple sequence of layers that we have defined into highly efficient series of matrix in a format intended to be executed on the CPU. In this work, we achieved the compiling of our network by using the compile class in Keras which has optimization algorithm, loss function, and metrics as parameters. We compared both Adam [29] and RMSprop (Root Mean Square probability) as the optimization algorithms and binary_crossentropy as the loss function. * STEP 3: Fit the Network--The compiled model is then fit, means adapting the model weights in response to the training dataset. In this step, we specified the training dataset with matrix of input patterns, **X**, and array of the matching output patterns, **y**. Here, we compared a batch size of 25 and 32. We also compared epochs of 100 and 500. * STEP 4: Evaluate the Network--In this current work, the ANN model was evaluated using K-Fold Cross-Validation, by which much detailed is given in Section 2.6. Figure 8: (**a**) The Architectural Structure of the ANN model (3-6-6-1) with 73 trainable parameters; (**b**) The Architectural Structure of the ANN model (3-20-20-1) with 521 trainable parameters. Figure 6: (**a**) The Architectural Structure of the ANN model (3-6-6-1); (**b**) The Architectural Structure of the ANN model (3-20-20-1). Figure 7: The flowchart of the Artificial Neural Network (ANN) model implementation.