Base de code pour "Réseaux adversaires génératifs de séries chronologiques (Timegan)"
Auteurs: Jinsung Yoon, Daniel Jarrett, Mihaela van der Schaar
Référence: Jinsung Yoon, Daniel Jarrett, Mihaela van der Schaar, «Time-series Generative Adversarial Networks», Neural Information Processing Systems (NEIRIPS), 2019.
Lien papier: https://papers.nips.cc/paper/8789-temps-series-generative-adversarial-networks
Contact: [email protected]
Ce répertoire contient des implémentations de Timegan Framework pour la génération de données de séries chronologiques synthétiques à l'aide d'un ensemble de données synthétiques et de deux ensembles de données du monde réel.
- Données sinusoïdales: synthétique
- Données en stock: https://finance.yahoo.com/quote/goog/history?p=goog
- Données énergétiques: http://archive.ics.uci.edu/ml/datasets/appliances+energy+prediction
Pour exécuter le pipeline pour la formation et l'évaluation sur Timegan Framwork, exécutez simplement Python3 -M main_timegan.py ou voir le tutoriel Jupyter-notebook de Timegan dans tutoriel_timegan.ipynb.
Notez que toute architecture de modèle peut être utilisée comme modèle de générateur et de discriminateur tel que les RNN ou les transformateurs.
Explication du code
(1) data_loking.py
- Transformer les données brutes de séries chronologiques en données prétraitées sur les séries chronologiques (données Googld)
- Générer des données sinusoïdales
(2) Répertoire des métriques (a) visualisation_metrics.py
- Analyse PCA et T-SNE entre les données d'origine et les données synthétiques (b) Discriminative_Metrics.py
- Utilisez le RNN post-hoc pour classer les données originales et les données synthétiques (c) prédictive_metrics.py
- Utilisez le RNN post-hoc pour prédire une étape à l'avance (dernière fonctionnalité)
(3) Timegan.py
- Utilisez des données originales de séries chronologiques comme formation de formation pour générer des données de séries chronologiques synthétiques
(4) main_timegan.py
- Signaler des scores discriminants et prédictifs pour l'ensemble de données et l'analyse T-SNE et PCA
(5) utils.py
- Certaines fonctions d'utilité pour les mesures et Timegan.
Entrées de commande:
- data_name: sinus, stock ou énergie
- seq_len: longueur de séquence
- Module: GRU, LSTM ou LSTMLN
- Hidden_dim: Dimensions cachées
- num_layers: nombre de couches
- Itérations: nombre d'itérations de formation
- Batch_size: le nombre d'échantillons dans chaque lot
- METRIC_ITERATIONS: Nombre d'itérations pour le calcul métrique
Notez que les paramètres du réseau doivent être optimisés pour différents ensembles de données.
Exemple de commande
$ 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
Sorties
- Ori_data: données originales
- généré_data: données synthétiques générées
- Metric_Results: scores discriminants et prédictifs
- Visualisation: analyse PCA et TSNE