## 3 Results  
### Performance  
This section interprets the results and discusses their implications. An analytical assessment of various ML models was carried out, measuring predictive performance and computational resource utilization across different metrics. Table 5 enumerates the evaluated metrics for each employed model. Performance analysis involved calculating micro-averaged precision, recall, and F1-score to gauge class-agnostic accuracy, while macro-averaged metrics provided an understanding of performance across different classes. Resource metrics, including memory usage and computational load, allowed further inspection into model efficiency. The empirical compilation in Table 5 delineates macro-averaged precision, recall, and F1 across multiple CPU candidates together with different GPU counterparts. Metrics congregate within a narrow corridor near 0.98 for most classical learners, signaling ceiling-level discriminative potential once the balanced five-class subset is considered. Despite metric proximity, heterogeneity emerges once architecture category, parameter count, execution venue, as well as fold-specific variance are interrogated; an interpretative stratification therefore proves indispensable. Classical ensembles--hereafter tagged _AggEnsembles_--constitute the first stratum. Bagging, Random Forest, Gradient Boosting, CatBoost, LightGBM, XGB-Boost, together with Histogram-Based Gradient Boosting, share decision-tree substrata; nonetheless, heterogeneity in macro F1 remains detectable, albeit marginal. LightGBM posts 0.984 on both silicon settings; Bagging attains 0.984 during CPU trials; Gradient Boosting drifts lower at 0.976; CatBoost attains 0.981 (CPU) though 0.976 (GPU). These figures coalesce yet reveal subtle elasticity: parameter tuning, leaf regularization, data \begin{table}
\begin{tabular}{l c c c} \hline \hline  & \multicolumn{2}{c}{**CPU—Average 10-Fold (Macro) Performance**} \\ \hline
**Model** & **Precision** & **Recall** & **F1** \\ \hline Cat Boost & 0.981 & 0.981 & 0.981 \\ Gradient Boost & 0.977 & 0.977 & 0.976 \\ XG Boost & 0.982 & 0.982 & 0.982 \\ LightGBM & 0.984 & 0.984 & 0.983 \\ Ada Boost & 0.977 & 0.977 & 0.977 \\ HGBT & 0.982 & 0.982 & 0.981 \\ Bernoulli NB & 0.932 & 0.922 & 0.923 \\ Multinomial NB & 0.981 & 0.981 & 0.981 \\ Gaussian NB & 0.981 & 0.981 & 0.981 \\ Bagging & 0.985 & 0.985 & 0.984 \\ Stacking & 0.982 & 0.982 & 0.982 \\ Random Forest & 0.984 & 0.984 & 0.984 \\ RDA & 0.983 & 0.983 & 0.983 \\ LDA & 0.981 & 0.981 & 0.981 \\ ODA & 0.982 & 0.982 & 0.982 \\ DT & 0.968 & 0.968 & 0.968 \\ KNN & 0.977 & 0.977 & 0.977 \\ C4.5 & 0.960 & 0.960 & 0.960 \\ SVM & 0.982 & 0.982 & 0.981 \\ LSTM & 0.985 & 0.985 & 0.985 \\ RNN & 0.971 & 0.971 & 0.971 \\ GRU & 0.984 & 0.984 & 0.984 \\ MLP (Neural Net) & 0.987 & 0.987 & 0.987 \\ \hline \hline \multicolumn{4}{c}{**GPU—Average 10-Fold (Macro) Performance**} \\ \hline
**Model** & **Precision** & **Recall** & **F1** \\ \hline Cat Boost & 0.976 & 0.976 & 0.976 \\ XG Boost & 0.983 & 0.983 & 0.983 \\ LightGBM & 0.984 & 0.984 & 0.984 \\ LSTM & 0.986 & 0.986 & 0.985 \\ RNN & 0.971 & 0.971 & 0.971 \\ GRU & 0.980 & 0.980 & 0.980 \\ MLP (Neural Net) & 0.989 & 0.989 & 0.989 \\ CNN-scratch VGG-16 & 0.840 & 0.832 & 0.832 \\ CNN-VGG-16-TL & 0.655 & 0.652 & 0.653 \\ ViT & 0.751 & 0.722 & 0.713 \\ \hline \hline \end{tabular}
\end{table} 
Table 5: Average macro-averaged precision, recall, and F1 obtained across the 10 folds for each model, with the mean fold index where the peak occurred. binning, together with column sampling, produce minute but measurable drift. The smallest drift appears within XGBoost, where 0.982 (CPU) versus 0.983 (GPU) differ by merely 0.001, implying parity between tree-construction heuristics despite disparate thread hierarchies. A conjecture emerges: once dataset cardinality remains modest, memory-access latency rather than arithmetic throughput constrains gradient-tree pipelines; thus, GPU acceleration yields negligible macro-score gain.