Skip to main content

Time-Series Cross-Validation

This python package aims to implement Time-Series Cross Validation Techniques.

The idea is given a training dataset, the package will split it into Train, Validation and Test sets, by means of either Forward Chaining, K-Fold or Group K-Fold.

As parameters the user can not only select the number of inputs (n_steps_input) and outputs (n_steps_forecast), but also the number of samples (n_steps_jump) to jump in the data to train.

The best way to install the package is as follows: pip install timeseries-cv and then use it with import tsxv.

  1. Features
  2. Citation

Features

This can be seen more intuitively using the jupyter notebook: "example.ipynb" Below you can find an example of the usage of each function for the following Time-Series:

timeSeries = array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26])

Split Train

split_train

from tsxv.splitTrain import split_train
X, y = split_train(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2)
train

split_train_variableInput

from tsxv.splitTrain import split_train_variableInput
X, y = split_train_variableInput(timeSeries, minSamplesTrain=10, n_steps_forecast=3, n_steps_jump=3)

split_train_variableInput

Split Train Val

split_train_val_forwardChaining

from tsxv.splitTrainVal import split_train_val_forwardChaining
X, y, Xcv, ycv = split_train_val_forwardChaining(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2)
trainVal - forwardChaining

split_train_val_kFold

from tsxv.splitTrainVal import split_train_val_kFold
X, y, Xcv, ycv = split_train_val_kFold(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2)
trainVal - kFold

split_train_val_groupKFold

from tsxv.splitTrainVal import split_train_val_groupKFold
X, y, Xcv, ycv = split_train_val_groupKFold(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2)
trainVal - groupKFold

Split Train Val Test

split_train_val_test_forwardChaining

from tsxv.splitTrainValTest import split_train_val_test_forwardChaining
X, y, Xcv, ycv, Xtest, ytest = split_train_val_test_forwardChaining(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2)
trainValTest - forwardChaining

split_train_val_test_kFold

from tsxv.splitTrainValTest import split_train_val_test_kFold
X, y, Xcv, ycv, Xtest, ytest = split_train_val_test_kFold(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2)
trainValTest - kFold

split_train_val_test_groupKFold

from tsxv.splitTrainValTest import split_train_val_test_groupKFold
X, y, Xcv, ycv, Xtest, ytest = split_train_val_test_groupKFold(timeSeries, n_steps_input=4, n_steps_forecast=3, n_steps_jump=2)
trainValTest - groupKFold

Citation

This module was developed with co-autorship with Filipe Roberto Ramos (https://ciencia.iscte-iul.pt/authors/filipe-roberto-de-jesus-ramos/cv) for his phD thesis entitled "Data Science in the Modeling and Forecasting of Financial timeseries: from Classic methodologies to Deep Learning". Submitted in 2021 to Instituto Universitário de Lisboa - ISCTE Business School, Lisboa, Portugal.

APA

Ramos, F. (2021). Data Science na Modelação e Previsão de Séries Económico-financeiras: das Metodologias Clássicas ao Deep Learning. (PhD Thesis submitted, Instituto Universitário de Lisboa - ISCTE Business School, Lisboa, Portugal).

@phdthesis{FRRamos2021,
      AUTHOR = {Filipe R. Ramos},
      TITLE = {Data Science na Modelação e Previsão de Séries Económico-financeiras: das Metodologias Clássicas ao Deep Learning},
      PUBLISHER = {PhD Thesis submitted, Instituto Universitário de Lisboa - ISCTE Business School, Lisboa, Portugal},
      YEAR =  {2021}
}

Metadata

Release files for timeseries-cv 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for timeseries-cv 0.1.5
File Size Uploaded
timeseries-cv-0.1.5.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for timeseries-cv 0.1.5
File Interpreter ABI Platform
timeseries_cv-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 16.7 kB

Release files / timeseries-cv-0.1.5.tar.gz

Download URL timeseries-cv-0.1.5.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6ff5577adeb67f668ee0990f47675e1cbd86724eba80f557e59bad3ae0991659
BLAKE2b-256 checksum
How to use checksums
c2cdd44c79aa0cf4289f5c660180ada04de191f17ce17ea18567ff83f00236e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.12 CPython/3.8.2 Linux/5.11.0-1021-azure

Release files / timeseries_cv-0.1.5-py3-none-any.whl

Download URL timeseries_cv-0.1.5-py3-none-any.whl
Size 8.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
517ea012337410a266b1504165f5102478f4cbeadabb7f5b0c08fac4cd475ef7
BLAKE2b-256 checksum
How to use checksums
6da8a87a8c5e05a59d9f31558b668b9fa179658dce70ccff91d72c74cd923f91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.12 CPython/3.8.2 Linux/5.11.0-1021-azure

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page