## 2 Materials and Methods
### Mathematical Model
#### 2.3.1 Pre-Process Data  
The pre-processing of data involved two steps: normalisation and splitting the dataset. Normalisation in machine learning is a vital process that standardizes numerical data in  
Figure 6: Schematic illustration of determining the particle shape parameters: roundness, sphericity, and regularity.  
Figure 7: Workflow of the applied machine learning algorithm.  
your dataset, similar to converting measurements from feet, inches, and yards all into metres, so everything is on the same scale. This process ensures that the machine learning models treat all features fairly and do not overvalue one feature while undervaluing another [50]. When all of the features are on the same scale, the model can learn and make predictions more effectively and efficiently. Techniques like min-max normalisation, Z-score normalisation, and robust scaling are commonly used. In other words, normalisation makes the data neat and uniform, helping machine learning models perform at their best.  
In the results analysis, the min-max Normalisation method was followed, which rescales the data to a range between 0 and 1. The formula for this is as follows:  
\[X^{\prime}=\frac{(X-X_{min})}{(X_{max}-X_{min})} \tag{1}\]  
where \(X\) is the original value, and \(X_{min}\) and \(X_{max}\) are the smallest and largest values in the data.  
Following normalisation is the splitting of the dataset. Data splitting is a popular method for model validation in which we divide a given dataset into two distinct sets: training and testing. Following that, the statistical and machine learning models are fitted to the training set and validated using the testing set. By separating a portion of the data for validation purposes, independent of the training process, we can effectively assess and compare the predictive performance of various models. The most used ratio of data splitting is 80:20, where 80% of the data is used for training and 20% for testing. This conventional method relies on a single random split of the data. The 80:20 split draws its justification from the well-known Pareto principle, which states that roughly 80% of the effects come from 20% of the causes or inputs [51]. The train-test split, although commonly used, has been found to have potential biases and limitations in assessing model performance. To overcome these challenges, we implemented the k-fold cross-validation method.  
The k-fold cross-validation is a popular statistical method that provides a more comprehensive, robust, and reliable approach to assess the model's performance and reduce computation time without any bias resulting from random dataset splitting [52, 53]. This technique enables a more rigorous evaluation of the model's effectiveness compared to the train_test_split approach.  
In our own dataset, we incorporated both the train_test_split and the k-fold cross-validation (10 folds) methods. For the k-fold cross-validation, the dataset was divided into 10 sections, with nine sections used for training the model and the remaining section for testing. In each fold, a different section was designated for training, while the remaining sections were used for testing. This process was repeated across all folds until each section was used for both training and testing. The final result obtained from our 10-fold cross-validation was an average of the performance across all folds.