• Stars
    star
    124
  • Rank 288,207 (Top 6 %)
  • Language
    Python
  • Created over 5 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Deep Adaptive Input Normalization for Time Series Forecasting

Deep Adaptive Input Normalization for Time Series Forecasting

Deep Learning (DL) models can be used to tackle time series analysis tasks with great success. However, the performance of DL models can degenerate rapidly if the data are not appropriately normalized. This issue is even more apparent when DL is used for financial time series forecasting tasks, where the non-stationary and multimodal nature of the data pose significant challenges and severely affect the performance of DL models. Deep Adaptive Input Normalization (DAIN) is a simple, yet effective, neural layer, that is capable of adaptively normalizing the input time series, while taking into account the distribution of the data. DAIN is trained in an end-to-end fashion using back-propagation and can lead to significant performance improvements.

In this repository we provide an implementation of the Deep Adaptive Input Normalization (DAIN) using PyTorch. Sample data loaders to evaluate the effectiveness of the proposed method using a large-scale limit order book dataset (FI-2010 dataset) are also provided.

We provide an example of using the proposed method in run_exp.py and we compare DAIN to other normalization approaches. The proposed method can both increase the price forecasting as shown below (evaluation on all splits using a two layer MLP, prediction horizon = 10, window = 15):

Method F1 score Cohen's kappa
z-score 0.550 0.327
Sample Avg. 0.434 0.205
DAIN (full) 0.682 0.514

Please download the preprocessed data from here. The dataset was based on the FI-2010 dataset.

If you use this code in your work please cite the following paper:

@article{dain,
  title={Deep Adaptive Input Normalization for Price Forecasting using Limit Order Book Data},
  author={Passalis, Nikolaos and Tefas, Anastasios and Kanniainen, Juho and Gabbouj, Moncef and Iosifidis, Alexandros},
  journal={IEEE Transactions on Neural Networks and Learning Systems},
  year={2019}
}

Check my website for more projects and stuff!

More Repositories

1

probabilistic_kt

Probabilistic Knowledge Transfer for Deep Neural Networks
Python
40
star
2

keras_meetup

Deep Learning Made Easy with Keras (Thessaloniki Machine Learning Meetup)
Jupyter Notebook
31
star
3

sef

A Python Library for Similarity-based Dimensionality Reduction
Python
28
star
4

cbof

Bag-of-Features Pooling for Deep Convolutional Neural Networks
Python
27
star
5

pkth

Implementation of the Heterogeneous Knowledge Distillation using Information Flow Modeling method
Python
24
star
6

arduino-tdcs

tDCS using arduino
Python
18
star
7

rl_camera_control

Deep Reinforcement Learning for Camera Control
Python
11
star
8

keras_cbof

Keras implementation of the BoF-based pooling for Deep CNNs
Python
10
star
9

bof_eeg

Using Bag-of-Features to classify EEG time-series data
Python
8
star
10

intro_rl_meetup

Reinforcement Learning: All you need to know (Thessaloniki Machine Learning Meetup)
Jupyter Notebook
7
star
11

qsmi

Quadratic Spherical Mutual Information for Deep Supervised Image Hashing
Python
5
star
12

neural-bof

Neural Bag-of-Features method implemented using Theano
Python
5
star
13

edge_tpu_meetup

Simple examples on how to use Edge TPU for varioust tasks
Jupyter Notebook
5
star
14

drone_frontal_rl

Deep Reinforcement Learning for Frontal View Person Shooting
Python
4
star
15

eo-bow

Python implementation of EO-BoW method
Python
4
star
16

messing_deep_ir

Messing with extracting deep representations for retrieval
Jupyter Notebook
2
star
17

finbof

Implementation of the Temporal Logistic Neural BoF method
Python
2
star
18

hypersphere_imprinting

Hypersphere-based Weight Imprinting for Few-shot Learning on Embedded Devices
Python
1
star
19

photonic_test

photonic_test
1
star
20

boew

Python implementation of the Bag-of-Embedded-Words method
Python
1
star