## 2 Materials and Methods
### Data Processing
The optimal kernel width is chosen based on the tradeoff between underfitting and overfitting loss. Besides that, the \(\sigma\) also has a similar definition with kernel scale (\(\gamma\)) where \(\gamma=\frac{1}{2\sigma^{2}}\). Another kernel function that was used was polynomial that can be expressed as: \[k\big{(}x_{i},x_{j}\big{)}=\left(1+x_{i}^{T}x_{j}\right)^{p}\] (8) where \(p\) is the order of the polynomial kernel. The degree of the polynomial kernel able to influence the tolerance of the classifier resulted in a flexible decision boundary of a higher degree polynomial than the lower one. 7. Nearest neighbor is a simple algorithm that stores all available cases and classifies new cases based on similarity measure or distant function. Nearest neighbor is expressed as: \[NN=2\overline{d}\sqrt{\frac{n}{a}}\] (9)
8. where \(\overline{d}\) is the average distance between each data, \(n\) is the total number of data, and \(a\) is the size of the studied area. 9. Ensemble modeling meld results from many weak learners into one high-quality ensemble model. Qualities depend on the choice of algorithm. An ensemble classifier is expressed as: \[F_{T}(x)=\sum_{t=1}^{T}f_{t}(x)\] (10) where \(F_{T}\) is the model that best fits the training data, and each \(f_{t}\) is a weak learner that takes an object \(x\) as input and returns a value that indicates the class of the object. The total number of samples remaining after removing outliers was 913. This sample was divided into two separate datasets in a 70:30 ratio, with 70% used as input data to develop machine learning classification models, and 30% used as a prediction dataset to test the models' ability to classify an independent dataset. In MATLAB, the input dataset was automatically divided into two groups, namely training and validation. A five-fold cross-validation technique was used to evaluate the performance of the training model, whereby the dataset was randomly divided into five equal-sized subsamples. Each subsample was used to test the model developed using the other four trained subsamples. This process was repeated five times, with each subsample becoming a testing set once to estimate the model classification skill on unseen data, thus generating a less biased model. The completed models were then subsequently exported and assessed using the prediction dataset. As a result, 23 classification models from various types of kernels, shown in Table 2, were developed using the identified significant bands. After the development of classification models, exploratory runs were performed where the 35 significant bands were optimized to find the optimal number of bands that could improve the overall classification accuracy achieved by the models. Considering only 35 significant bands instead of 125 bands can avoid analytical issues due to unnecessary bands, thereby making it less complex and more economical to design future hardware. The optimization process (Figure 3) was carried out with a 50% reduction in the number of significant bands to find the optimum number of bands that could improve the average of all accuracy of machine learning models compared to the previous band, which can be expressed in the equation below:  
\[Improvement=n-(n-1) \tag{11}\]  
where \(n\) is the average of all accuracy of the current significant bands and \((n-1)\) is the average of all accuracy of the previous significant bands. However, if the models' average accuracy did not improve, the number of significant bands was increased by 50%. The optimization process was terminated when the number of bands became greater than 35 or no improvement in the average of all accuracy for at least two previous significant bands. The performance time for each model for each significant band was also recorded in order to assess the models' capability.