Skip to content

Hritikbansal/MultivariateTimeSeries_Generalization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MultivariateTimeSeries_Generalization

This repository is an official pytorch implementation of the paper - Systematic Generalization for Prediction Control in MultiVariate Time Series (arxiv).

Requirements

  • python 3
  • pytorch >= 1.1
  • numpy
  • matplotlib

You can use anaconda (python library manager) or pip. We used anaconda, and downloaded all the dependencies in an anaconda environment.

We trained our models using High Performance Computing (HPC) facility provided by IIT Delhi.

Authors

  1. Hritik Bansal
  2. Gantavya Bhatt
  3. Pankaj Malhotra
  4. Prathosh A.P.

Experiments and Models

Source code to run our experiments are present in src.

master_script.sh in both narma and pmsm folders would indicate actual runs of the experiments for 10 random seeds through run.py. This script differs slightly for these datasets as certain experiments (such as intervention testing (noise sensitivity here)) are exclusive to those datasets.

Dataset

Below we present the raw time series files along with their data generating sources. The files are used to create temporal segments that are created on-the-fly while running the code.

NARMA

In the paper, we describe four NARMA scenarios.

You can find the raw data to train and test (systematic generalization testing) the models in data/narma/6.

narma_2d_i_n0.csv contains the data for ith Scenario.

TimeSynthCombGen-spurious_corr.zip in data/narma/6 contains the data generating scripts, which have been taken from TimeSynth repository.

Permanent Magnet Synchronous Motor (PMSM)

Raw data corresponding to PMSM described in the paper is present in data/pmsm/.

GEM_PMSM.ipynb is the data-generating notebook which is taken from GEM repository.

Note

As this paper is a result of a lot of experiments and architectural tweaks, you might observe that the codes contain a lot more material than presented in the paper. We shall either remove those pieces with time, or add relevant explanations for such pieces in the README file.