## Materials and Methods
### Back Propagation Artificial Neural Network (BP-ANN)  
ANNs have captured the focus of much attention due to their wide range of applicability, which can deal with complicated problems [32]. The Neural Network Toolbox of MATLAB software (2010a) (the MathWorks, Inc., Natick, MA, USA) was chosen in this work to develop the ANN models using neural network toolbox. Commonly used ANNs include multilayer perception (MLP), self-organization mapping (SOM), radial basis function (RBF) and fuzzy network [33]. Back propagation (BP) with the multilayer perception architecture is the most popular and widely used ANN with a good generalization ability and high reliability, which is based on the supervised learning procedure. In the present study, a three layer (input layer, hidden layer and output layer) feed-forward artificial neural network was selected to develop the predictive model (Figure 2). The output in each layer of BP-ANN was produced by summing all the input weight through the activation function [34]. A tangent sigmoid transfer function (tansig) at input-hidden layer was adopted (Equation (7)), while a linear transfer function (purelin) was used in hidden-output layer (Equation (8)). The network was trained by traingdx algorithm and the number of training epochs was set as 2000 with the learning rate at \(10^{-5}\) (Figure 3).  
It is an important step to determine the number of neurons in hidden layer for training the network. In the present research, the computations were performed in which the number of neurons was varied from 1 to 10. The inputs (independent variables) and output (dependent variable) was normalized in the range of \(-1\)-+1 to avoid numerical overflow due to excessively large or small weights. The normalization equation is described as follows:  
\[y_{i}=2\times\frac{x-x_{min}}{x_{max}-x_{min}}-1 \tag{4}\]  
where \(y_{i}\) is the normalized value of \(x\), and the \(x_{min}\) and \(x_{max}\) are the minimum and maximum values of \(x\), respectively. The weight of a neuron in hidden layer is calculated as follows:  
\[W_{i}=\sum_{i=1}^{k}w_{ij}x_{i} \tag{5}\]  
where \(x_{i}\) is value of neuron \(i\) in input layer, \(w_{ij}\) is the corresponding connection weight between neuron (\(i\)) in input layer and neuron (\(j\)) in hidden layer, and the weight of a neuron in output layer is calculated as follows:  
\[W_{i}=\sum_{i=1}^{k}w_{jl}x_{j} \tag{6}\]  
where \(x_{j}\) is value of neuron j in hidden layer, \(w_{jl}\) is the corresponding connection weight between neuron (\(j\)) in hidden layer and neuron (\(l\)) in output layer. The tangent sigmoid (tansig) was used as transfer function between input and hidden layers which is given by:  
\[f(x)=\frac{2}{1+e^{-2x}}-1 \tag{7}\]  
The following is linear transfer function (purelin) used between hidden and output layers:  
\[f(x)=x \tag{8}\]  
Figure 3: Flow diagram of BP-ANN training.  
The output was produced by weight and bias of neuron through the activation function using Equation (9):  
\[Y=f\times(w+b) \tag{9}\]  
where \(y,f,w\) and \(b\) represent the output, activation function, weight and bias in hidden layer or output layer, respectively.  
The relative influence of the individual variable was calculated by the following Garson equation [35; 36]:  
\[\mathbf{I}_{ab}=\frac{\sum_{g=1}^{n}\left(\frac{|w_{eg}|}{\sum_{i=1}^{n}|w_{eg }|}\Big{|}|w_{gb}|\right)}{\sum_{h=1}^{n}\left(\sum_{g=1}^{n}\left(\frac{|w_{ ag}|}{\sum_{i=1}^{n}|w_{eg}|}\Big{|}|w_{gb}|\right)\right)} \tag{10}\]  
where \(I_{ab}\) is the relative importance of the \(j\)th input variable on the output variable, \(w_{x}\) is the connection weight, \(a,g\) and \(b\) are the number of neurons in the input layer, hidden layer and output layer, respectively.