PRISM: Lightweight Multivariate Time-Series Classification through Symmetric Multi-Resolution Convolutional Layers
Multivariate time series classification supports applications from wearable sensing to biomedical monitoring and demands models that can capture both short-term patterns and longer-range temporal dependencies. Despite recent advances, Transformer and CNN models often remain computationally heavy and rely on many parameters. This work presents PRISM (Per-channel Resolution Informed Symmetric Module), a lightweight fully convolutional classifier. Operating in a channel-independent manner, in its early stage it applies a set of multi-resolution symmetric convolutional filters. This symmetry enforces structural constraints inspired by linear-phase FIR filters from classical signal processing, effectively halving the number of learnable parameters within the initial layers while preserving the full receptive field. Across the diverse UEA multivariate time-series archive as well as specific benchmarks in human activity recognition, sleep staging, and biomedical signals, PRISM matches or outperforms state-of-the-art CNN and Transformer models while using significantly fewer parameters and markedly lower computational cost. By bringing a principled signal processing prior into a modern neural architecture, PRISM offers an effective and computationally economical solution for multivariate time series classification.
Create a Python virtual environment using venv, activate it, and install the required packages:
python3 -m venv prism # create a venv in the "env" folder
# activate:
source prism/bin/activate # macOS / Linux
# or on Windows (PowerShell):
# .\env\Scripts\Activate.ps1
pip install --upgrade pip # ensure latest pip
pip install -r requirements.txtThe following publicly available datasets were used in our experiments:
Biomedical and HAR datasets (BIOHAR):
- WISDM: Smartphone and Smartwatch Activity and Biometrics Dataset
- HHAR_SA: Heterogeneity Activity Recognition
- UCIHAR: Human Activity Recognition Using Smartphones
- Sleep-EDF
- ECG Heartbeat Dataset (Kaggle)
- Heartbeat Classification
UEA Archive:
ISRUC-S3 Sleep Stage Dataset:
- For access and training instructions, please refer to the MSA-CNN repository.
For data preprocessing scripts, dataset access via NTU Dataverse, and guidance on preparing new data, please refer to the TS-TCC repository.
Important: Preprocessed, ready-to-use
.ptfiles for all BIOHAR datasets are also available on our Google Drive.
To train and test PRISM on Biomedical and HAR datasets (BIOHAR) (stored in datasets/BIOHAR/<DatasetName>/ in .pt format) , use the following command:
python run.py \
--task_name classification \
--is_training 1 \
--root_path ./datasets/BIOHAR/WISDM/ \
--model_id WISDM \
--model PRISM \
--data TensorPT For UEA datasets (stored in datasets/UEA/<DatasetName>/ in .ts format) use the UEA data loader, for example:
python run.py \
--task_name classification \
--is_training 1 \
--root_path ./datasets/UEA/PhonemeSpectra/ \
--model_id PhonemeSpectra \
--model PRISM \
--data UEA 