Base de código para "redes adversas generativas de la serie temporal (TimeGan)"
Autores: Jinsung Yoon, Daniel Jarrett, Mihaela van der Schaar
Referencia: Jinsung Yoon, Daniel Jarrett, Mihaela van der Schaar, "Redes adversas generativas de la serie temporal", Sistemas de procesamiento de información neural (Neurips), 2019.
Enlace en documento: https://papers.nips.cc/paper/8789-Time-series-Generative-adversarial-networks
Contacto: [email protected]
Este directorio contiene implementaciones del marco Timegan para la generación de datos de series de tiempo sintéticas utilizando un conjunto de datos sintético y dos conjuntos de datos del mundo real.
- Datos sinusoidal: sintético
- Datos de stock: https://finance.yahoo.com/quote/goog/history?p=goog
- Datos de energía: http://archive.ics.uci.edu/ml/datasets/appliances+Energy+Prediction
Para ejecutar la tubería para capacitación y evaluación en el marco de TimeGan, simplemente ejecute python3 -m main_timegan.py o vea el tutorial de Jupyter -Notebook de Timegan en tutorial_timegan.ipynb.
Tenga en cuenta que cualquier arquitectura del modelo puede usarse como modelo de generador y discriminador, como RNN o transformadores.
Explicación del código
(1) data_loading.py
- Transforme los datos de la serie de tiempo sin procesar a los datos preprocesados de la serie de tiempo (datos de Googld)
- Generar datos sine
(2) Directorio de métricas (a) Visualization_metrics.py
- Análisis PCA y T-SNE entre datos originales y datos sintéticos (b) discriminative_metrics.py
- Use RNN post-hoc para clasificar los datos originales y los datos sintéticos (c) predictive_metrics.py
- Use RNN post-hoc para predecir un paso por delante (última función)
(3) Timegan.py
- Use datos originales de la serie temporal como conjunto de capacitación para generadores de datos sintéticos de series sintéticas
(4) main_timegan.py
- Informe puntajes discriminativos y predictivos para el conjunto de datos y el análisis T-SNE y PCA
(5) utilss.py
- Algunas funciones de servicios públicos para métricas y tiempo de tiempo.
Entradas de comando:
- data_name: seno, stock o energía
- Seq_len: longitud de secuencia
- Módulo: Gru, LSTM o LSTMLN
- Hidden_dim: dimensiones ocultas
- num_layers: número de capas
- iteraciones: número de iteraciones de capacitación
- Batch_size: el número de muestras en cada lote
- Metric_iterations: número de iteraciones para el cálculo métrico
Tenga en cuenta que los parámetros de red deben optimizarse para diferentes conjuntos de datos.
Comando de ejemplo
$ 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
Salidas
- ORI_DATA: datos originales
- generado_data: datos sintéticos generados
- Metric_Results: puntajes discriminativos y predictivos
- Visualización: análisis PCA y TSNE