## 4 Experiments  
### Dataset  
The State Farm dataset, featured in the \"State Farm Distracted Driver Detection\" competition on Kaggle [34, 35, 36], is used in this study. Additionally, the Driver Skeleton [37, 38] is a video dataset from which each frame is extracted to create an image dataset. This dataset, collected through dashboard cameras, is divided into 10 categories identified by c0,..., c9, as shown in Table 1. The State Farm dataset is a widely used dataset for distracted driving behavior analysis. It contains a collection of images and videos from in-car cameras, which capture various driving scenarios. The dataset is labeled with different driving behaviors, such as whether the driver is engaged in distracted driving or focused on the road. The State Farm dataset is commonly used for training and evaluating models that detect distracted driving by analyzing visual cues such as facial expressions, head movements, and hand positions. This dataset serves as a benchmark for driver behavior classification tasks and provides valuable data for studying driver attentiveness in various road conditions. The Driver Skeleton dataset is designed for studying driver behavior recognition using 3D skeletal data. This dataset focuses on capturing the body keypoints of the driver using skeletal tracking technology, which enables the analysis of subtle movements such as hand gestures, head orientation, and body posture. The dataset provides 3D coordinates of body keypoints (e.g., joints and limbs) and can be used to recognize and classify different driving behaviors, including potentially dangerous actions. The main advantage of using skeletal data over traditional image data is their robustness to lighting variations and occlusions, making them more suitable for real-time monitoring and behavior classification. BlazePose is used to obtain (33, 3) skeleton keypoints data for each image in the State Farm dataset and is saved to a CSV file. Because BlazePose is not always able to accurately estimate skeleton keypoints, data cleaning is performed to remove outliers from each category using kNN. The scheme of applying kNN for data cleaning is based on the assumption that similar data points should be close to each other in the feature space. Therefore, data points significantly deviating from this neighborhood are considered abnormal and removed from the dataset to improve data quality. By removing outliers, each category exhibits significant differences in distance within the feature space, beneficial for training classification models. During data cleaning, all data of the same category are inputted. When processing a specific data point, the algorithm uses the maximum difference between the keypoint coordinates of the data and all other data as the distance measure, finding \(k\) nearest neighbors for each data point. If its annotation category differs from its neighbors, it is considered an outlier and removed. Figure 3 visualizes skeleton keypoints and links on the original image. The number of images in each category is shown in Table 1. The official data partitioning scheme of the State Farm dataset is followed, and the standard 80% and 20% split strategy is applied to both datasets to ensure a rigorous evaluation [34; 39; 40]. These datasets consist of diverse driving behaviors performed by different drivers or simulated drivers, which helps mitigate the risk of overfitting to a single individual's movement patterns. \begin{table}
\begin{tabular}{c l c c} \hline \hline
**Action Number** & **Category** & **State Farm** & **Driver Skeleton** \\ \hline c0 & Safe driving & 1860 & 3928 \\ c1 & Texting—right & 1932 & 4118 \\ c2 & Talking on the phone—right & 1444 & 4125 \\ c3 & Texting—left & 1887 & 4201 \\ c4 & Talking on the phone—left & 1847 & 3946 \\ c5 & Operating the radio & 2011 & 3609 \\ c6 & Drinking & 1763 & 4019 \\ c7 & Reaching behind & 1608 & 3753 \\ c8 & Hair and makeup & 965 & 3533 \\ c9 & Talking to passenger & 1826 & 3860 \\ \hline \hline \end{tabular}
\end{table}