Skip to content

TensorFlow implementation of TCAN model for multivariate time series forecasting with sparse attention mechanisms.

License

Notifications You must be signed in to change notification settings

flaviagiammarino/tcan-tensorflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TCAN TensorFlow

license languages stars forks

TensorFlow implementation of multivariate time series forecasting model introduced in Lin, Y., Koprinska, I., and Rana, M. (2021). Temporal Convolutional Attention Neural Networks for Time Series Forecasting. In 2021 International Joint Conference on Neural Networks (IJCNN) (pp. 1-8). IEEE.

Dependencies

pandas==1.5.2
numpy==1.23.5
tensorflow==2.11.0
tensorflow_probability==0.19.0
tensorflow_addons==0.19.0
plotly==5.11.0
kaleido==0.2.1

Usage

import numpy as np

from tcan_tensorflow.model import TCAN
from tcan_tensorflow.plots import plot

# Generate some time series
N = 500
t = np.linspace(0, 1, N)
e = np.random.multivariate_normal(mean=np.zeros(3), cov=np.eye(3), size=N)
a = 10 + 10 * t + 10 * np.cos(2 * np.pi * (10 * t - 0.5)) + 1 * e[:, 0]
b = 20 + 20 * t + 20 * np.cos(2 * np.pi * (20 * t - 0.5)) + 2 * e[:, 1]
c = 30 + 30 * t + 30 * np.cos(2 * np.pi * (30 * t - 0.5)) + 3 * e[:, 2]
y = np.hstack([a.reshape(-1, 1), b.reshape(-1, 1), c.reshape(-1, 1)])

# Fit the model
model = TCAN(
    y=y,
    x=None,
    forecast_period=100,
    lookback_period=100,
    quantiles=[0.001, 0.1, 0.5, 0.9, 0.999],
    filters=32,
    kernel_size=7,
    dilation_rates=[1, 2, 4],
    dropout=0,
    alpha=1.5
)

model.fit(
    regularization=0.5,
    learning_rate=0.001,
    batch_size=32,
    epochs=200,
    verbose=1
)

# Generate the forecasts
df = model.forecast(y=y, x=None)

# Plot the forecasts
fig = plot(df=df, quantiles=[0.001, 0.1, 0.5, 0.9, 0.999])
fig.write_image('results.png', scale=4, height=900, width=700)

results

About

TensorFlow implementation of TCAN model for multivariate time series forecasting with sparse attention mechanisms.

Topics

Resources

License

Stars

Watchers

Forks

Languages