Loading repository data…
Loading repository data…
WenjieDu / repository
A Python toolkit/library for reality-centric machine/deep learning & data mining on partially-observed time series, with 50+ SOTA neural network models for scientific analysis tasks (imputation, classification, clustering, forecasting, anomaly detection, cleaning) on incomplete industrial irregularly-sampled multivariate TS with NaN missing values
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
简体中文 | English
⦿ Motivation: Due to all kinds of reasons like failure of collection sensors, communication error,
and unexpected malfunction, missing values are common to see in time series from the real-world environment.
This makes partially-observed time series (POTS) a pervasive problem in open-world modeling and prevents advanced
data analysis. Although this problem is important, the area of machine learning on POTS still lacks a dedicated toolkit.
PyPOTS is created to fill in this blank.
⦿ Mission: PyPOTS (pronounced "Pie Pots") is born to become a handy toolbox that is going to make machine learning on
POTS easy rather than tedious, to help engineers and researchers focus more on the core problems in their hands rather
than on how to deal with the missing parts in their data. PyPOTS will keep integrating classical and the latest
state-of-the-art machine learning algorithms for partially-observed multivariate time series. For sure, besides various
algorithms, PyPOTS is going to have unified APIs together with detailed documentation and interactive examples across
algorithms as tutorials.
The rest of this readme file is organized as follows: ❖ Available Algorithms, ❖ PyPOTS Ecosystem, ❖ Installation, ❖ Usage, ❖ Citing PyPOTS, ❖ Contribution, ❖ Community.
PyPOTS supports imputation, classification, clustering, forecasting, and anomaly detection tasks on multivariate
partially-observed time series with missing values. The table below shows the availability of each algorithm
(sorted by Year) in PyPOTS for different tasks. The symbol ✅ indicates the algorithm is available for the
corresponding task, and you could click ✅ to jump to the code example of the algorithm on the task.
Note that models will be continuously updated in the future to handle tasks that are not currently supported. Stay tuned!
🌟 Since v0.2, all neural-network models in PyPOTS has got hyperparameter-optimization support by Microsoft NNI until . In PyPOTS v2, this functionality is reimplemented with the framework. You may want to refer to our time-series imputation survey and benchmark repo to see how to config and tune the hyperparameters.
🔥 Note that all models whose name with 🧑🔧 in the table (e.g. Transformer, iTransformer, Informer etc.) are not
originally proposed as algorithms for POTS data in their papers, and they cannot directly accept time series with
missing values as input, let alone imputation. To make them applicable to POTS data, we specifically apply the
embedding strategy and training approach (ORT+MIT) the same as we did in
the SAITS paper[^1].
The task types are abbreviated as follows:
IMPT: Imputation;
FCST: Forecasting;
CLAF: Classification;
CLUS: Clustering;
ANOD: Anomaly Detection.
In addition to the 5 tasks, PyPOTS also provides TS2Vec[^48] for time series representation learning and vectorization.
The paper references and links are all listed at the bottom of this file.
| Type | Algo | IMPT | FCST | CLAF | CLUS | ANOD | Year - Venue |
|---|---|---|---|---|---|---|---|
| LLM&TSFM | Time-Series.AI [^36] | ✅ | ✅ | ✅ | ✅ | ✅ | Join waitlist |
| Neural Net | HELIX [^55] | ✅ | 2026 - ICML | ||||
| Neural Net | MixLinear🧑🔧[^52] | ✅ | 2026 - ICLR | ||||
| Neural Net | SegRNN🧑🔧[^43] | ✅ | ✅ | ✅ | 2026 - IoT-J | ||
| Neural Net | TEFN🧑🔧[^39] | ✅ | ✅ | ✅ | ✅ | 2025 - TPAMI | |
| Neural Net | TimeMixer++[^49] | ✅ | ✅ | ✅ | 2025 - ICLR | ||
| LLM | Time-LLM🧑🔧[^45] | ✅ | ✅ | 2024 - ICLR | |||
| TSFM | MOMENT[^47] | ✅ | ✅ | 2024 - ICML | |||
| Neural Net | TSLANet[^51] | ✅ | 2024 - ICML | ||||
| Neural Net | FITS🧑🔧[^41] | ✅ | ✅ | 2024 - ICLR | |||
| Neural Net | TimeMixer[^37] | ✅ | ✅ | ✅ | 2024 - ICLR | ||
| Neural Net | iTransformer🧑🔧[^24] | ✅ | ✅ | ✅ | 2024 - ICLR | ||
| Neural Net | ModernTCN[^38] | ✅ | ✅ | 2024 - ICLR | |||
| Neural Net | ImputeFormer🧑🔧[^34] | ✅ | ✅ | 2024 - KDD | |||
| Neural Net | TOTEM[^50] | ✅ | 2024 - TMLR | ||||
| Neural Net | TKAN🧑🔧[^54] | ✅ | 2024 - arXiv | ||||
| Neural Net | SAITS[^1] | ✅ | ✅ | ✅ | 2023 - ESWA | ||
| LLM | GPT4TS[^46] | ✅ | ✅ | 2023 - NeurIPS | |||
| Neural Net | FreTS🧑🔧[^23] | ✅ | 2023 - NeurIPS | ||||
| Neural Net | Koopa🧑🔧[^29] | ✅ | 2023 - NeurIPS | ||||
| Neural Net | Crossformer🧑🔧[^16] | ✅ | ✅ | 2023 - ICLR | |||
| Neural Net | TimesNet[^14] | [✅](examples/imputation/timesnet_imputation_e |