[Paper Review] GSR Analysis for Stress: Development and Validation of an Open Source Tool for Noisy Naturalistic GSR Data
This paper presents an open-source Python tool for GSR/EDA analysis that combines statistical and deep-learning feature extraction to detect stress from noisy naturalistic GSR data, evaluated on the WESAD dataset with high accuracy.
The stress detection problem is receiving great attention in related research communities. This is due to its essential part in behavioral studies for many serious health problems and physical illnesses. There are different methods and algorithms for stress detection using different physiological signals. Previous studies have already shown that Galvanic Skin Response (GSR), also known as Electrodermal Activity (EDA), is one of the leading indicators for stress. However, the GSR signal itself is not trivial to analyze. Different features are extracted from GSR signals to detect stress in people like the number of peaks, max peak amplitude, etc. In this paper, we are proposing an open-source tool for GSR analysis, which uses deep learning algorithms alongside statistical algorithms to extract GSR features for stress detection. Then we use different machine learning algorithms and Wearable Stress and Affect Detection (WESAD) dataset to evaluate our results. The results show that we are capable of detecting stress with the accuracy of 92 percent using 10-fold cross-validation and using the features extracted from our tool.
Motivation & Objective
- Motivate stress detection from Galvanic Skin Response (GSR) due to health risks linked to stress.
- Propose an open-source Python pipeline that handles noisy naturalistic GSR data.
- Extract both statistical and deep learning features from GSR for stress classification.
- Evaluate the approach on the Wearable Stress and Affect Detection (WESAD) dataset with cross-validation.
Proposed method
- A two-stage GSR pipeline: preprocessing (down-sampling to 20 Hz, moving average with 1-second window, and min-max normalization) and feature extraction.
- Statistical feature extraction using number of peaks, mean GSR, and max peak amplitude, with phasic component derived via cvxEDA for onset/offset and peak computation.
- Phasic component extraction using cvxEDA to decompose GSR into phasic, tonic, and noise terms.
- Deep learning feature extraction by treating a pretrained CNN as a feature extractor, taking outputs from the last subsampling layer as features.
- Classification experiments with four ML algorithms (kNN, Naive Bayes, Random Forest, SVM) using two feature sets (statistical vs. deep learning features).
- Evaluation uses 10-fold cross-validation on the WESAD dataset.
Experimental results
Research questions
- RQ1Can a combined statistical and deep learning feature extraction pipeline improve stress detection from GSR in noisy naturalistic data?
- RQ2How do statistical features compare to deep learning features in driving stress classification using GSR?
- RQ3What is the classification performance (accuracy) on the WESAD dataset for stress detection using the proposed features and classifiers?
Key findings
- Best 10-fold CV accuracy with statistical features: 90% using kNN with k=1.
- Best 10-fold CV accuracy with deep learning features: 91.6% using kNN with k=5.
- Three ML algorithms (out of four) preferred deep learning features, achieving higher accuracy in many cases.
- WESAD dataset provides baseline comparisons where prior results achieved 79.71% binary stress classification on EDA data, while the proposed approach shows improved accuracy.
- The tool provides both efficient statistical features and a broad set of deep learning features for stress detection.
Better researchstarts right now
From reading papers to final review, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.