All Projects
Computer Vision

Human Activity Recognition (HAR)

14-model benchmark on 9,299 UCI sensor readings. SVM Linear tops at 96.1%. t-SNE shows clean activity clusters. PCA retains 95% variance at ~95 components. Sitting/Standing confusion is the primary error source.

96.10%
SVM Linear accuracy
95.18%
Stacking accuracy
94.10%
XGBoost accuracy
~95
PCA components (95%)
Dataset

UCI HAR: 9,299 samples, 561 features, 6 activities, 30 subjects

Approach

14-model benchmark with PCA + t-SNE analysis on expert-engineered sensor features

Tech Stack
PythonScikit-learnXGBoostLightGBMPCAt-SNEPandas
Keywords
SVMXGBoostLightGBMPCAt-SNESensor DataUCI HAR
Visualizations6 Charts
Deep Dive

End-to-end ML pipeline on UCI HAR — accelerometer + gyroscope from 30 subjects, 6 activities.

Dataset

  • 9,299 samples (7,352 train / 2,947 test), 30 subjects (21 train / 9 test)
  • 561 pre-extracted features: time-domain + frequency-domain statistics
  • 6 activities: Walking, Walking Upstairs, Walking Downstairs, Sitting, Standing, Laying

Dimensionality Analysis

  • t-SNE on 3K subset: clear non-linear cluster separation even at 2D
  • PCA: 95% variance at ~95 components (from 561)
  • Top features by F-statistic: tBodyAcc-mean-X, tGravityAcc-mean-X, angle(X,gravityMean)

All 14 Models

ModelTest Accuracy
Naive Bayes77.03%
KNN (k=5)88.02%
Decision Tree87.07%
Bagging89.11%
Random Forest92.74%
Extra Trees94.06%
Gradient Boosting93.18%
XGBoost94.10%
LightGBM93.99%
CatBoost91.62%
Stacking (RF+XGB+LGB→LR)95.18%
Logistic Regression95.42%
SVM RBF95.49%
SVM Linear96.10%

Error Analysis (115 errors / 2,947 = 3.9%)

  • SITTING → STANDING: 55 errors
  • STANDING → SITTING: 18 errors
  • Cause: accelerometer posture features nearly identical for sitting vs standing — only fine gyroscope signals distinguish them

Why SVM Linear Wins The 561 features are domain-expert-engineered statistics designed to be linearly separable. SVM with linear kernel exploits this directly. Tree-based models add unnecessary complexity for already linearly-separable data.