CodeBase para "Série Tempo Redes Adversárias Generativas (Timegan)"
Autores: Jinsung Yoon, Daniel Jarrett, Mihaela van der Schaar
Referência: Jinsung Yoon, Daniel Jarrett, Mihaela van der Schaar, "Série Tempo Redes Adversárias Generativas", Sistemas de Processamento de Informações Neurais (Neurips), 2019.
Link em papel: https://papers.nips.cc/paper/8789-time-series-generative-adververial-networks
Contato: [email protected]
Este diretório contém implementações da estrutura do Timegan para geração de dados de séries temporais sintéticas usando um conjunto de dados sintéticos e dois conjuntos de dados do mundo real.
- Dados senos: sintéticos
- Dados de estoque: https://finance.yahoo.com/quote/goog/history?p=goog
- Dados de energia: http://archive.ics.uci.edu/ml/datasets/appliances+energy+prediction
Para executar o pipeline para treinamento e avaliação sobre o Timegan Framwork, basta executar o python3 -m main_timegan.py ou consulte Jupyter -Notebook Tutorial of timegan em tutorial_timegan.ipynb.
Observe que qualquer arquitetura de modelo pode ser usada como modelo gerador e discriminador, como RNNs ou transformadores.
Explicação de código
(1) data_loading.py
- Transforme dados de séries temporais brutas em dados de série temporal pré-processados (dados do Google)
- Gerar dados senoidais
(2) Diretório de métricas (a) visualização_metrics.py
- Análise PCA e T-SNE entre dados originais e dados sintéticos (b) discrimination_metrics.py
- Use o RNN post-hoc para classificar dados originais e dados sintéticos (c) preditiva_metrics.py
- Use o RNN post-hoc para prever uma etapa à frente (último recurso)
(3) timegan.py
- Use dados originais da série temporal como conjunto de treinamento para Gerater Data Synthetic-Series
(4) main_timegan.py
- Relate as pontuações discriminativas e preditivas para o conjunto de dados e análise T-SNE e PCA
(5) UTILS.PY
- Algumas funções de utilidade para métricas e Timegan.
Entradas de comando:
- Data_name: seno, estoque ou energia
- SEQ_LEN: comprimento da sequência
- Módulo: GRU, LSTM ou LSTMLN
- Hidden_dim: dimensões ocultas
- Num_Layers: Número de camadas
- iterações: número de iterações de treinamento
- batch_size: o número de amostras em cada lote
- Metric_iterations: Número de iterações para computação métrica
Observe que os parâmetros de rede devem ser otimizados para diferentes conjuntos de dados.
Exemplo de comando
$ 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
Saídas
- ori_data: dados originais
- gerado_data: dados sintéticos gerados
- METRIC_RESULTS: Pontuações discriminativas e preditivas
- Visualização: Análise PCA e TSNE