## 5 Results
### Decision Trees (DTs) Training  
Following the discovery that DTs perform better than Naive Bayes and k-NN for the specific dataset, it is essential to distinguish which DTs technique is better for making accurate predictions. The used methods refer to a non-pruned and a pruned DT classification method. Non-pruned DTs refer to fully developed trees without restrictions on their growth, while pruned DTs refer to a tree with a maximum depth to control its size and complexity and mitigate classification overfitting and noise generation in order to increase the accuracy. K-fold cross-validation allowed us to assess generalization capabilities and optimize parameters like max_depth, min_samples_split, and min_samples_leaf. Due to simple decision boundary, a pruned DT might show the essential data structure when further splitting would not necessarily optimize the classification accuracy. Also, if a DT is pruned to a level where overfitting is eliminated, it can have essential information gain and score a high accuracy (Table 10) [21; 22; 23; 24; 25]. In DT visualization, colors represent the different classes where different colors signify classes, showing a color gradient to declare the probability of class assignment in each leaf node. The dominating color in a leaf implies that the class instances in that node are expected to belong to that class. Furthermore, color intensity depicts the model classification confidence and indicates a high certainty, with most of the classified instances belonging to one class, while lighter or mixed colors indicate low confidence levels or a more even class distribution (Figures 12-23) [32; 33; 34; 35; 36; 37]. Figure 12 shows the non-pruned generated DT root node. It starts with a generated split based on the primary user engagement feature, focusing on the event count or bounce rate variables. This root node serves the purpose of the initial point of entry into the DT, directing to the lower classifying engagement levels. It must be mentioned that this DT is not assessed for its symmetrical structure, as the primary objective was to reach a high classification accuracy (Figure 12, Figure A1) [38]. Nevertheless, there are techniques like cost-complexity pruning, balanced splitting criteria, or other method that could be developed to reshape the DT's structure, optimizing its effectiveness and robustness for a wider range of applications. Approaches like these will be implemented and assessed in future research [30]. Figure 13 shows the expansion from the root node, introducing a secondary-level classification. Nodes 0.1 and 0.2 show how users are classified upon certain features based on different thresholds. Each node demonstrates a distinguished decision entry point, refining high and low user engagement features, focusing on the engagement classification metrics. \begin{table}
\begin{tabular}{c c} \hline \hline
**Model** & **Accuracy** \\ \hline Non-pruned DTs & 97.98\% \\ Pruned DTs & 97.98\% \\ \hline \hline \end{tabular}
\end{table} 
Table 10: DT classification accuracy. Figure 11: Classifiers performance confusion matrices. Figure 14: Non-pruned decision tree—node 0.1. Figure 12: Non-pruned decision trees. Figure 13: Non-pruned decision tree—nodes 0, 0.1, and 0.2. Figure 14 shows a non-pruned DT subtree node 0.1 and 0.2, representing generic user behaviors. It shows conditions like certain event counts or bounce rate thresholds keep filtering users based on their engagement features. Further branching shows the inclining complexity of user engagement, indicating the metric's effect on medium- or high-engagement classes. In Figure 15, the node introduces the classification related to lower engagement values, indicating users with minimum interaction. This subtree classifies users with lower session counts, higher bounce rates, or fewer events, showing low engagement patterns. Figure 16 demonstrates a deeper node 0.2.1 including subclasses with specific engagement patterns highlighting the complexity of user behavior that contributes to lower engagement rate.