简体中文 | English
PaddleTS - PaddlePaddle-based Time Series Modeling in Python
PaddleTS is an easy-to-use Python library for deep time series modeling, focusing on the state-of-the-art deep neural network models based on PaddlePaddle deep learning framework. It aims to provide great flexibility and excellent user experiences for practitioners and professionals. It’s featured with:
- A unified data structure named TSDataset for representing time series data with one or multiple target variables and optional different kinds of covariates (e.g. known covariates, observed covariates, static covariates, etc.)
- A base model class named PaddleBaseModelImpl , which inherits from the PaddleBaseModel and further encapsulates some routine procedures (e.g. data loading, callbacks setup, loss computation, training loop control, etc.) and allows developers to focus on the implementation of network architectures when developing new models
- A set of state-of-the-art deep learning models containing NBEATS, NHiTS, LSTNet, TCN, Transformer, DeepAR, Informer, etc. for forecasting, TS2Vec, CoST, etc. for representation, AutoEncoder, VAE, AnomalyTransformer, etc. for anomaly detection
- A set of transformation operators for data preprocessing (e.g. missing values/outliers handling, one-hot encoding, normalization, and automatic date/time-related covariates generation, etc.)
- A set of analysis operators for quick data exploration (e.g. basic statistics and summary)
- Automatic time series modeling module (AutoTS) which supports mainstream Hyper Parameter Optimization algorithms and shows significant improvement on multiple models and datasets
- Third-party (e.g. scikit-learn, pyod) ML models & data transformations integration
- Time series model ensemble
Recently updated:
- PaddleTS now supports time series classification
- PaddleTS releases 6 new time series models. USAD(UnSupervised Anomaly Detection) and MTAD-GAT(Multivariate Time-series Anomaly Detection via Graph Attention Network) for anomaly detection, CNN and Inception Time for time series classification, SCINet(Sample Convolution and Interaction Network) and TFT(Temporal Fusion Transformer) for forecasting
- Paddle Inference is now available for PaddleTS time series forecasting and anomaly detection
- PaddleTS now supports both model-agnostic and model-specific explanation
- PaddleTS now supports representation-based time series cluster and classification
Please also see release notes to get exhaustive update lists.
In the future, more advanced features will be coming, including:
- More time series models
- Scenario-specific pipelines which aim to provide an end-to-end solution for solving real-world business problems
- And more
Specifically, PaddleTS consists of the following modules:
Module | Description |
---|---|
paddlets.datasets | Unified time series representation (TSDataset) and data repository with pre-built TSDatasets. |
paddlets.autots | Automatic hyper-parameter tuning. |
paddlets.transform | Data preprocessing and data transformations. |
paddlets.models.forecasting | PaddlePaddle-based deep neural network models for time series forecasting. |
paddlets.models.representation | PaddlePaddle-based deep neural network models for time series representation. |
paddlets.models.anomaly | PaddlePaddle-based deep neural network models for time series anomaly detection. |
paddlets.models.classify | PaddlePaddle-based deep neural network models for time series classification. |
paddlets.pipeline | Pipeline for building time series analysis and modeling workflows. |
paddlets.metrics | Metrics for measuring the performance of a model. |
paddlets.analysis | Quick data exploration and advanced data analysis. |
paddlets.ensemble | Time series ensemble methods. |
paddlets.xai | Model-agnostic and model-specific explanation for time series modeling. |
paddlets.utils | Utility functions. |
- python >= 3.7
- paddlepaddle >= 2.3
Install paddlets via pip:
pip install paddlets
To get more detailed information, please refer to Installation.
Feel free to scan below WeChat QR code to join PaddleTS community for technical discussion with PaddleTS maintainers and community members:
We appreciate all kinds of contributions. Please let us know if you encounter any bug by filing an issue.
If you are willing to contribute back bug-fixes, please go ahead without any further discussion.
If you plan to contribute new features, utility functions, or extensions to the core, please first open an issue and discuss with us. Sending a PR without discussion might end up with rejection because we might be taking the core in a different direction than you might be aware of.
PaddleTS has an Apache-style license, as found in the LICENSE file.