/har-wisdm-bidirectional-lstm-rnns

Human Activity Recognition on the Wireless Sensor Data Mining (WISDM) dataset using Bidirectional LSTM Recurrent Neural Networks

Primary LanguagePython

Human Activity Recognition on the Wireless Sensor Data Mining (WISDM) dataset using Bidirectional LSTM Recurrent Neural Networks

This repository cotains code used to recognize human activity based on the Wireless Sensor Data Mining (WISDM) dataset using LSTM (Long short-term memory) and is heavily based on the article by Venelin Valkov.

It extends my previous project, by allowing for a bidirectional coomunication between network cells.

Dataset

The data used for classification is provided by the Wireless Sensor Data Mining (WISDM) Lab and can be downloaded here. It consists of 1,098,207 examples of various physical activities (sampled at 20Hz) with 6 attributes: user,activity,timestamp,x-acceleration,y-acceleration,z-acceleration, and the activities include: Walking, Jogging, Upstairs, Downstairs, Sitting, Standing.

Original research done on this dataset can be found here.

Input/Output/Background on LSTMs

Check here.

Results

In contrary to the previous project, a Bayesiyan Optimization was run to optimize the hyperparameters of the Network. The hyperparameters are: SEGMENT TIME SIZE, NUMBER OF HIDDEN NEURONS, BATCH SIZE. There was not any apparent correlation between the variables (see below). Accuracy vs. neurons, batch size Accuracy vs. segment, neurons

The maximum accuracy of 95% has been achieved with SEGMENT TIME SIZE = 180, NUMBER OF HIDDEN NEURONS = 30, BATCH SIZE = 10.

Dependencies

  • matplotlib 1.5.3
  • seaborn 0.8.1
  • numpy 1.14
  • pandas 0.20.3
  • scikit-learn 0.19.1
  • tensorflow 1.5.0

Use

  1. Run the script with python3 HAR_Recognition.py