All Projects → arnedb → tsfuse

arnedb / tsfuse

Licence: other
Python package for automatically constructing features from multiple time series

Programming Languages

python
139335 projects - #7 most used programming language
Jupyter Notebook
11667 projects
cython
566 projects

Projects that are alternatives of or similar to tsfuse

Merlion
Merlion: A Machine Learning Framework for Time Series Intelligence
Stars: ✭ 2,368 (+7075.76%)
Mutual labels:  time-series, automl
Forecasting
Time Series Forecasting Best Practices & Examples
Stars: ✭ 2,123 (+6333.33%)
Mutual labels:  time-series, automl
Luminaire
Luminaire is a python package that provides ML driven solutions for monitoring time series data.
Stars: ✭ 316 (+857.58%)
Mutual labels:  time-series, automl
Auto ts
Automatically build ARIMA, SARIMAX, VAR, FB Prophet and XGBoost Models on Time Series data sets with a Single Line of Code. Now updated with Dask to handle millions of rows.
Stars: ✭ 195 (+490.91%)
Mutual labels:  time-series, automl
H1st
The AI Application Platform We All Need. Human AND Machine Intelligence. Based on experience building AI solutions at Panasonic: robotics predictive maintenance, cold-chain energy optimization, Gigafactory battery mfg, avionics, automotive cybersecurity, and more.
Stars: ✭ 697 (+2012.12%)
Mutual labels:  time-series, automl
AutoTS
Automated Time Series Forecasting
Stars: ✭ 665 (+1915.15%)
Mutual labels:  time-series, automl
Shapley regressions
Statistical inference on machine learning or general non-parametric models
Stars: ✭ 37 (+12.12%)
Mutual labels:  time-series
go-metrics-wavefront
Wavefront plugin for go-metrics
Stars: ✭ 12 (-63.64%)
Mutual labels:  time-series
ewstools
Python package for early warning signals (EWS) of bifurcations in time series data.
Stars: ✭ 29 (-12.12%)
Mutual labels:  time-series
orderbook modeling
Example of order book modeling.
Stars: ✭ 38 (+15.15%)
Mutual labels:  time-series
Neural-Architecture-Search
This repo is about NAS
Stars: ✭ 26 (-21.21%)
Mutual labels:  automl
price-optimization-shiny
Shiny app for Price Optimization using prophet and lme4 libraries for R.
Stars: ✭ 28 (-15.15%)
Mutual labels:  time-series
DTW
Dynamic Time Warping in Python / C (using ctypes)
Stars: ✭ 26 (-21.21%)
Mutual labels:  time-series
walker
Bayesian Generalized Linear Models with Time-Varying Coefficients
Stars: ✭ 38 (+15.15%)
Mutual labels:  time-series
LSTM-Time-Series-Analysis
Using LSTM network for time series forecasting
Stars: ✭ 41 (+24.24%)
Mutual labels:  time-series
mf-nav-data
Historical NAV/price/time-series data of mutual funds and popular benchmark indices in India
Stars: ✭ 29 (-12.12%)
Mutual labels:  time-series
forecasting models
An overview of univariate time series forecasting models with sample code.
Stars: ✭ 39 (+18.18%)
Mutual labels:  time-series
SCINet
Forecast time series and stock prices with SCINet
Stars: ✭ 28 (-15.15%)
Mutual labels:  time-series
cnn-rnn-bitcoin
Reusable CNN and RNN model doing time series binary classification
Stars: ✭ 28 (-15.15%)
Mutual labels:  time-series
gold-price-analysis
Creating a model to analyze and predict the trend of the prices of gold.
Stars: ✭ 31 (-6.06%)
Mutual labels:  time-series

TSFuse

Python package for automatically constructing features from multiple time series

PyPI tests


Installation

Install the latest release using pip:

pip install tsfuse

Quickstart

The example below shows the basic usage of TSFuse.

Data format

The input of TSFuse is a dataset where each instance is a window that consists of multiple time series and a label.

Time series

Time series are represented using a dictionary where each entry represents a univariate or multivariate time series. As an example, let's create a dictionary with two univariate time series:

from pandas import DataFrame
from tsfuse.data import Collection
X = {
    "x1": Collection(DataFrame({
        "id":   [0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3],
        "time": [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2],
        "data": [1, 2, 3, 1, 2, 3, 3, 2, 1, 3, 2, 1],
    })),
    "x2": Collection(DataFrame({
        "id":   [0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3],
        "time": [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2],
        "data": [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3],
    })),
}

The two univariate time series are named x1 and x2 and each series is represented as a Collection object. Each Collection is initialized with a DataFrame that has three columns:

  • id which is the identifier of each instance, i.e., each window,
  • time which contains the time stamps,
  • data contains the time series data itself.

For multivariate time series data, there can be multiple columns similar to the data column. For example, the data of a tri-axial accelerometer would have three columns x, y, z instead of data as it simultaneously measures the x, y, z acceleration.

Labels

There should be one target value for each window, so we create a Series where the index contains all unique id values of the time series data and the data consists of the labels:

from pandas import Series
y = Series(index=[0, 1, 2, 3], data=[0, 0, 1, 1])

Feature construction

To construct features, TSFuse provides a construct function which takes time series data X and target data y as input, and returns a DataFrame where each column corresponds to a feature. In addition, this function can return a computation graph which contains all transformation steps required to compute the features for new data:

from tsfuse import construct
features, graph = construct(X, y, return_graph=True)

To apply this computation graph to new data, simply call transform with a time series dictionary X as input:

features = graph.transform(X)

Documentation

The documentation is available on https://arnedb.github.io/tsfuse/

Citing TSFuse

If you use TSFuse for a scientific publication, please consider citing this paper:

De Brabandere, A., Op De Beéck, T., Hendrickx, K., Meert, W., & Davis, J. TSFuse: automated feature construction for multiple time series data. Machine Learning (2022)

@article{tsfuse,
    author  = {De Brabandere, Arne
               and Op De Be{\'e}ck, Tim
               and Hendrickx, Kilian
               and Meert, Wannes
               and Davis, Jesse},
    title   = {TSFuse: automated feature construction for multiple time series data},
    journal = {Machine Learning},
    year    = {2022},
    doi     = {10.1007/s10994-021-06096-2},
    url     = {https://doi.org/10.1007/s10994-021-06096-2}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].