Research · 2026
sEMG Gesture Classifier
Classical machine learning on six-gesture surface EMG, evaluated the hard way.
AIEMGPython


What it does
- Six-gesture hand recognition from 16-channel surface EMG at 2 kHz, on the public GREAT dataset: 8 participants, arm-translation protocol.
- Compares decision tree, random forest, AdaBoost, histogram gradient boosting, KNN, logistic regression and a perceptron, plus a soft-voting ensemble, against the paper's LDA baseline.
- Two feature sets: Hudgins-4, 64 features in total, and rich-14, 224 features.
How it is evaluated
- Four rungs: the full-data bake-off, the paper's within-position protocol, transfer across arm positions, and leave-one-subject-out over eight folds.
- Every split keeps a whole trial on one side. Windows overlap by 78 ms, so a window-level split would leak and the bake-off number would be meaningless.
- Accuracy carries a 95% bootstrap confidence interval over 1000 resamples; significance is a Wilcoxon signed-rank test over the eight participants, not over windows.
- 128 ms windows, 256 samples, 50 ms hop: 470,413 windows over 4,800 trials. Counting features are thresholded at 1% of each channel's own standard deviation.
Results
- KNN reaches about 98% on the full-data bake-off; the paper's own protocol reports about 96% within position and 84 to 92% across positions.
- Nothing is cached: the pipeline recomputes every number from the recordings and writes them to a results file, so the figures are what the code produces.
- Boosting is represented by its histogram implementation, and an equivalence check on a subsample shows the successor buys speed, not accuracy.
Facts
- Year
- 2026
- Status
- Public, release v1.0.0
- Stack
- Python, scikit-learn, NumPy
- Data
- GREAT dataset, 8 participants, 16 channels, 2 kHz
- Context
- Graduate coursework, Korea University


