Basis kode untuk "Jaringan Perselisihan Generatif Seri-Waktu (Timegan)"
Penulis: Jinsung Yoon, Daniel Jarrett, Mihaela van der Schaar
Referensi: Jinsung Yoon, Daniel Jarrett, Mihaela van der Schaar, "Jaringan Generatif Seri-Waktu Jaringan," Sistem Pemrosesan Informasi Saraf (Neurips), 2019.
Tautan kertas: https://papers.nips.cc/paper/8789-time-series-generative-adversarial-networks
Hubungi: [email protected]
Direktori ini berisi implementasi kerangka kerja Timegan untuk pembuatan data seri waktu sintetis menggunakan satu dataset sintetis dan dua dataset dunia nyata.
- Data Sine: Sintetis
- Data stok: https://finance.yahoo.com/quote/goog/history?p=goog
- Data energi: http://archive.ics.uci.edu/ml/datasets/appliances+ergy+prediction
Untuk menjalankan pipa untuk pelatihan dan evaluasi pada timegan framwork, cukup jalankan python3 -m main_timeegan.py atau lihat tutorial jupyter -notebook tentang Timegan di tutorial_timeegan.ipynb.
Perhatikan bahwa arsitektur model apa pun dapat digunakan sebagai model generator dan diskriminator seperti RNN atau transformer.
Penjelasan Kode
(1) data_loading.py
- Ubah data seri waktu mentah menjadi data seri waktu yang telah diproses (data googld)
- Menghasilkan data sinus
(2) Direktori Metrik (A) Visualisasi_Metrics.py
- Analisis PCA dan T-SNE antara data asli dan data sintetis (b) diskriminatif_metrics.py
- Gunakan RNN post-hoc untuk mengklasifikasikan data asli dan data sintetis (c) prediktif_metrics.py
- Gunakan RNN post-hoc untuk memprediksi satu langkah di depan (fitur terakhir)
(3) timegan.py
- Gunakan data seri waktu asli sebagai pelatihan yang ditetapkan untuk data generater sintetis-series sintetis
(4) Main_timeegan.py
- Laporkan skor diskriminatif dan prediktif untuk dataset dan analisis T-SNE dan PCA
(5) utils.py
- Beberapa fungsi utilitas untuk metrik dan timegan.
Input Perintah:
- Data_name: Sine, Stock, atau Energy
- SEQ_LEN: Panjang urutan
- Modul: Gru, LSTM, atau LSTMLN
- Hidden_dim: Dimensi tersembunyi
- num_layers: jumlah lapisan
- Iterasi: Jumlah iterasi pelatihan
- Batch_Size: Jumlah sampel di setiap batch
- Metric_Iterations: Jumlah iterasi untuk perhitungan metrik
Perhatikan bahwa parameter jaringan harus dioptimalkan untuk set data yang berbeda.
Contoh Perintah
$ 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
Output
- Ori_data: Data asli
- dihasilkan_data: data sintetis yang dihasilkan
- Metric_results: skor diskriminatif dan prediktif
- Visualisasi: Analisis PCA dan TSNE