Skip to main content

Time Series Generator

Project description

Time Series Generator

PyPI version Documentation Status travis codecov GitHub license Requirements Status

Description

Emulates Teras Tensorflow TimeSeriesGenerator functionality presenting a candidate solution for the direct multi-step outputs limitation in Keras' version.

Instalation

pip install time-series-generator

Usage

import numpy as np
from time_series_generator import TimeseriesGenerator

data = np.array([[i] for i in range(50)])
targets = np.array([[i] for i in range(50)])

data_gen = TimeseriesGenerator(data, targets,
                                length=10, sampling_rate=2,
                                batch_size=2)
assert len(data_gen) == 20

batch_0 = data_gen[0]
x, y = batch_0
assert np.array_equal(x,
                        np.array([[[0], [2], [4], [6], [8]],
                                [[1], [3], [5], [7], [9]]]))
assert np.array_equal(y,
                        np.array([[10], [11]]))

Test

Install requirements

Windows:

.\scripts\init-env.ps1

MacOS / Linux

./scripts/init-env.sh

Run test

Run in the terminal at project root folder:

pytest -s

Keras' version limitation

A limitation of the Keras TimeseriesGenerator is that it does not directly support multi-step outputs. Specifically, it will not create the multiple steps that may be required in the target sequence.

Nevertheless, if you prepare your target sequence to have multiple steps, it will honor and use them as the output portion of each sample. This means the onus is on you to prepare the expected output for each time step.

Brownlee, Jason

Candidate Improvement proposed

Addition of the keyworded argument length_output.

    # define dataset
    series = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
    target = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
    # define generator
    n_input = 2
    n_output = 2
    generator = TimeseriesGenerator(series, target, length=n_input, length_output=n_output, batch_size=1)
    # print each sample
    for i in range(len(generator)):
        x, y = generator[i]
        print('%s => %s' % (x, y))

Output

[[1 2]] => [[3 4]]
[[2 3]] => [[4 5]]
[[3 4]] => [[5 6]]
[[4 5]] => [[6 7]]
[[5 6]] => [[7 8]]
[[6 7]] => [[8 9]]
[[7 8]] => [[9 10]]

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

time_series_generator-0.2.8.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

time_series_generator-0.2.8-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file time_series_generator-0.2.8.tar.gz.

File metadata

  • Download URL: time_series_generator-0.2.8.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2

File hashes

Hashes for time_series_generator-0.2.8.tar.gz
Algorithm Hash digest
SHA256 0f01c0e3418963fde34116c06215f87175fe91f51d4b76c8ef4e70dc7ef1b0e2
MD5 14a87fc19deb3dea5e146da0c0e7a78f
BLAKE2b-256 3b163b566b254a0716d78dae06211f7fb61d76d466dbcbc13574e592d1a866ff

See more details on using hashes here.

File details

Details for the file time_series_generator-0.2.8-py3-none-any.whl.

File metadata

  • Download URL: time_series_generator-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2

File hashes

Hashes for time_series_generator-0.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 70e9d3e024b5b89544e5c6844ebc67aed2f4e95690942796622579356498a7b0
MD5 329e40b5b2588ea6262e7b0e00591ba9
BLAKE2b-256 0798fd2b390a2748808f5a91aebf7c3eff677a00e7ba6ca4b1708115922baa14

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page