Machine learning pipeline to classify 7 hand gestures using 8-channel EMG signals.
Authors: Axel Fouet & Martin Tonascia — EE4C12, Group 42, October 2025
| Property | Value |
|---|---|
| Total samples | 4,237,907 |
| Subjects | 36 |
| EMG channels | 8 |
| Gesture classes | 7 (+ 1 unmarked) |
- Split by subject — 75% train / 25% test (prevents data leakage across subjects)
- Clean — remove class 0 (unmarked), drop duplicates, handle missing values
- Normalize — Z-score standardization per channel
- Feature extraction — sliding window (200 samples, 50% overlap) → 13 features × 8 channels = 104 features
- Feature selection — remove highly correlated features or apply PCA
- Train & evaluate — grid search over hyperparameters, 5 models compared
| Model | Test Accuracy | F1 Macro |
|---|---|---|
| Random Forest | 0.766 | 0.664 |
| rbf SVC | 0.739 | 0.641 |
| kNN | 0.730 | 0.631 |
| MLP | 0.728 | 0.630 |
| Linear SVC | 0.722 | 0.628 |
Best overall: Random Forest (79.1% accuracy at 70/30 split).
Note: All models fail on class 7 due to insufficient samples (~50 vs ~500 for other classes).
Mean, RMS, MAD, Std, Variance, Range, Skewness, Kurtosis, Max, Min, ZCR, WAMP, SSC