Spaces:
Running
Running
| # Feature selection justification | |
| The face_orientation model uses 10 of 17 extracted features. This document summarises empirical support. | |
| ## 1. Domain rationale | |
| The 10 features were chosen to cover three channels: | |
| - **Head pose:** head_deviation, s_face, pitch | |
| - **Eye state:** ear_left, ear_right, ear_avg, perclos | |
| - **Gaze:** h_gaze, gaze_offset, s_eye | |
| Excluded: v_gaze (noisy), mar (rare events), yaw/roll (redundant with head_deviation/s_face), blink_rate/closure_duration/yawn_duration (temporal overlap with perclos). | |
| ## 2. XGBoost feature importance (gain) | |
| From the trained XGBoost checkpoint (gain on the 10 features): | |
| | Feature | Gain | | |
| |---------|------| | |
| | head_deviation | 8.83 | | |
| | s_face | 10.27 | | |
| | s_eye | 2.18 | | |
| | h_gaze | 4.99 | | |
| | pitch | 4.64 | | |
| | ear_left | 3.57 | | |
| | ear_avg | 6.96 | | |
| | ear_right | 9.54 | | |
| | gaze_offset | 1.80 | | |
| | perclos | 5.68 | | |
| **Top 5 by gain:** s_face, ear_right, head_deviation, ear_avg, perclos. | |
| ## 3. Leave-one-feature-out ablation (LOPO) | |
| Baseline (all 10 features) mean LOPO F1: **0.8327**. | |
| | Feature dropped | Mean LOPO F1 | Δ vs baseline | | |
| |------------------|--------------|---------------| | |
| | head_deviation | 0.8395 | -0.0068 | | |
| | s_face | 0.8390 | -0.0063 | | |
| | s_eye | 0.8342 | -0.0015 | | |
| | h_gaze | 0.8244 | +0.0083 | | |
| | pitch | 0.8250 | +0.0077 | | |
| | ear_left | 0.8326 | +0.0001 | | |
| | ear_avg | 0.8350 | -0.0023 | | |
| | ear_right | 0.8344 | -0.0017 | | |
| | gaze_offset | 0.8351 | -0.0024 | | |
| | perclos | 0.8258 | +0.0069 | | |
| Dropping **h_gaze** hurts most (F1=0.8244), consistent with it being important. | |
| ## 4. Conclusion | |
| Selection is supported by (1) domain rationale (three attention channels), (2) XGBoost gain importance, and (3) leave-one-out ablation. SHAP or correlation-based pruning can be added in future work. | |