A package for generating semi-synthetic time series using morphing techniques.
Project description
tsMorph
tsMorph is a Python package designed to generate semi-synthetic time series through morphing techniques. It enables the systematic transformation between two given time series, facilitating robust performance evaluation of forecasting models.
This package is based on the paper:
Santos, M., de Carvalho, A., & Soares, C. (2024). Enhancing Algorithm Performance Understanding through tsMorph: Generating Semi-Synthetic Time Series for Robust Forecasting Evaluation. arXiv:2312.01344
Features
- Generation of Semi-Synthetic Time Series: Creates a set of intermediate time series transitioning from a source series (S) to a target series (T).
- Performance Understanding: Evaluates forecasting models' robustness using MASE (Mean Absolute Scaled Error) over synthetic series.
- Feature Extraction: Uses
pycatch22to extract time series features for deeper analysis. - Visualization Tools: Provides plotting functions to explore synthetic time series and their performance.
Installation
pip install tsmorph
Usage
Generate Semi-Synthetic Time Series
import numpy as np
import pandas as pd
from tsmorph import TSmorph
# Define source and target time series
S = np.array([1, 2, 3, 4, 5])
T = np.array([6, 7, 8, 9, 10])
ts_morph = TSmorph(S, T, granularity=5)
synthetic_df = ts_morph.fit()
print(synthetic_df)
Plot Semi-Synthetic Time Series
ts_morph.plot(synthetic_df)
Performance Understanding with Forecasting Models
from some_forecasting_model import TrainedModel
# Assume a trained forecasting model compatible with NeuralForecast
model = TrainedModel()
# Define forecast horizon
horizon = 2
# Analyze performance over synthetic series
ts_morph.analyze_morph_performance(synthetic_df, model, horizon)
Citation
If you use tsMorph in your research, please cite:
@article{santos2024tsmorph,
title={Enhancing Algorithm Performance Understanding through tsMorph: Generating Semi-Synthetic Time Series for Robust Forecasting Evaluation},
author={Santos, Mois{\'e}s and de Carvalho, Andr{\'e} and Soares, Carlos},
journal={arXiv preprint arXiv:2312.01344},
year={2024}
}
License
This project is licensed under the GNU General Public License v3.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tsmorph-0.1.1.tar.gz.
File metadata
- Download URL: tsmorph-0.1.1.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2aaaaf18045eaadf16bb97d66e9f7f4ab2ea7e13c9a62c5cdb554951318b9d5
|
|
| MD5 |
84f192e9384982e91239a67cda01ed2d
|
|
| BLAKE2b-256 |
5ba72ab51788185445a46a7bfac393830aeacd78542ab79933cc4b88dc9375d8
|
File details
Details for the file tsmorph-0.1.1-py3-none-any.whl.
File metadata
- Download URL: tsmorph-0.1.1-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4711f864c2cbe0eff5048bdd0e29af57c6669a213dd78d690a7f8d87d1bb8845
|
|
| MD5 |
54fc361e00cf95a91d36cabb9418ea7f
|
|
| BLAKE2b-256 |
45a0ed2fd0bfe15fd6640a2ceb41b691178c7387d8af4422195935462388ff35
|