Codebase for Time-series Generative Adversarial Networks (TimeGAN) - NeurIPS 2019
Authors: Jinsung Yoon, Daniel Jarrett, Mihaela van der Schaar
Reference: Jinsung Yoon, Daniel Jarrett, Mihaela van der Schaar, "Time-series Generative Adversarial Networks," Neural Information Processing Systems (NeurIPS), 2019.
Paper Link: https://papers.nips.cc/paper/8789-time-series-generative-adversarial-networks
Contact: [email protected]
This directory contains implementations of TimeGAN framework for synthetic time-series data generation using one synthetic dataset and two real-world datasets.
To run the pipeline for training and evaluation on TimeGAN framwork, simply run python3 -m maintimegan.py or see jupyter-notebook tutorial of TimeGAN in tutorialtimegan.ipynb.
Note that any model architecture can be used as the generator and discriminator model such as RNNs or Transformers.
(1) data_loading.py - Transform raw time-series data to preprocessed time-series data (Googld data) - Generate Sine data
(2) Metrics directory (a) visualizationmetrics.py - PCA and t-SNE analysis between Original data and Synthetic data (b) discriminativemetrics.py - Use Post-hoc RNN to classify Original data and Synthetic data (c) predictive_metrics.py - Use Post-hoc RNN to predict one-step ahead (last feature)
(3) timegan.py - Use original time-series data as training set to generater synthetic time-series data
(4) main_timegan.py - Report discriminative and predictive scores for the dataset and t-SNE and PCA analysis
(5) utils.py - Some utility functions for metrics and timeGAN.
Note that network parameters should be optimized for different datasets.
$ python3 main_timegan.py --data_name stock --seq_len 24 --module gru --hidden_dim 24 --num_layer 3 --iteration 50000 --batch_size 128 --metric_iteration 10