*2.3. Data Preprocessing*

The main goal of data preparation is to guarantee the quality of the data before applying them in any type of machine learning algorithm [34]. Before employing data in any learning algorithms, each input and output feature was normalized. Normalizing data generally prevents any variable from dominating the output values and boosts the accuracy of the model [35]. The most common normalization methods used in machine learning algorithms include min–max scaling, the standard score (z-score), and decimal scaling [36]. In this study, we applied two common normalization methods: the standard score and min–max scaling. First, we applied standard score normalization, and then we normalized the dataset between 0 and 1 (min–max scaling). In the standard score (z-score) normalization, the values for a feature *A* are normalized based on the mean (i.e., average) and standard deviation of *A* [34]. *A* value *vi* is normalized to *v <sup>i</sup>* by computing:

$$v'\_i = \frac{v\_i - \overline{A}}{\sigma\_A} \tag{1}$$

where *A* and *σ<sup>A</sup>* are the mean and standard deviation of attribute *A*, respectively [26]. Then, we applied min–max scaling normalization to our input features. In this technique, the attribute will be rescaled from its domain to a new range of values. In our case study, the input features are normalized in the (0, 1) range [36], where the following relation is used:

$$f(\mathbf{v}) = \frac{\mathbf{v} - \min(\mathbf{v})}{\max(\mathbf{v}) - \min(\mathbf{v})} \tag{2}$$

Dataset normalization has a great effect on preparing the input data to be suitable for training and improving the accuracy of the output [35]. Many studies have employed more than one normalization method on input data before feeding data to any neural network's algorithms to help comparing two or more datasets with different scales [37–41].
