Skip to content

PRISM-TS/PRISM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PRISM Logo

PRISM: Lightweight Multivariate Time-Series Classification through Symmetric Multi-Resolution Convolutional Layers

PRISM Architecture

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.

⚙️ Setup with venv

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.txt

📂 Datasets

The following publicly available datasets were used in our experiments:

Biomedical and HAR datasets (BIOHAR):

UEA Archive:

ISRUC-S3 Sleep Stage Dataset:

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 .pt files for all BIOHAR datasets are also available on our Google Drive.

🏋️ Training PRISM

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 

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages