Skip to content

Commit

Permalink
Merge pull request #444 from WenjieDu/dev
Browse files Browse the repository at this point in the history
Use `inspect` to fetch models arguments and update docs
  • Loading branch information
WenjieDu committed Jun 21, 2024
2 parents d563164 + 626b784 commit 8956ac5
Show file tree
Hide file tree
Showing 9 changed files with 64 additions and 65 deletions.
37 changes: 18 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ And what else? Please read on ;-)
👈 Time series datasets are taken as coffee beans at PyPOTS, and POTS datasets are incomplete coffee beans with missing parts that have their own meanings.
To make various public time-series datasets readily available to users,
<i>Time Series Data Beans (TSDB)</i> is created to make loading time-series datasets super easy!
Visit [TSDB](https://github.com/WenjieDu/TSDB) right now to know more about this handy tool 🛠, and it now supports a total of 169 open-source datasets!
Visit [TSDB](https://github.com/WenjieDu/TSDB) right now to know more about this handy tool 🛠, and it now supports a total of 170 open-source datasets!

<a href="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/WenjieDu/PyGrinder">
<img src="https://pypots.com/figs/pypots_logos/PyGrinder/logo_FFBG.svg" align="right" width="140" alt="PyGrinder logo"/>
Expand All @@ -185,8 +185,8 @@ POTS algorithms on various tasks.
<img src="https://pypots.com/figs/pypots_logos/BrewPOTS/logo_FFBG.svg" align="right" width="140" alt="BrewPOTS logo"/>
</a>

👉 Now we have the beans, the grinder, and the pot, how to brew us a cup of coffee? Tutorials are necessary!
Considering the future workload, PyPOTS tutorials are released in a single repo,
👉 Now the beans, grinder, and pot are ready, please have a seat on the bench and let's think about how to brew us a cup of coffee.
Tutorials are necessary! Considering the future workload, PyPOTS tutorials are released in a single repo,
and you can find them in [BrewPOTS](https://github.com/WenjieDu/BrewPOTS).
Take a look at it now, and learn how to brew your POTS datasets!

Expand Down Expand Up @@ -264,39 +264,38 @@ saits.load("save_it_here/saits_physionet2012.pypots") # reload the serialized m

## ❖ Citing PyPOTS
> [!TIP]
> **[Updates in Feb 2024]** 😎 Our survey paper [Deep Learning for Multivariate Time Series Imputation: A Survey](https://arxiv.org/abs/2402.04059) has been released on arXiv.
The code is open source in the GitHub repo [Awesome_Imputation](https://github.com/WenjieDu/Awesome_Imputation).
> **[Updates in Jun 2024]** 😎 The 1st comprehensive time-seres imputation benchmark paper
[TSI-Bench: Benchmarking Time Series Imputation](https://arxiv.org/abs/2406.12747) now is public available.
The code is open source in the repo [Awesome_Imputation](https://github.com/WenjieDu/Awesome_Imputation).
With nearly 35,000 experiments, we provide a comprehensive benchmarking study on 28 imputation methods, 3 missing patterns (points, sequences, blocks),
various missing rates, and 8 real-world datasets.
>
> **[Updates in Feb 2024]** 🎉 Our survey paper [Deep Learning for Multivariate Time Series Imputation: A Survey](https://arxiv.org/abs/2402.04059) has been released on arXiv.
We comprehensively review the literature of the state-of-the-art deep-learning imputation methods for time series,
provide a taxonomy for them, and discuss the challenges and future directions in this field.
>
> **[Updates in Jun 2023]** 🎉 A short version of the PyPOTS paper is accepted by the 9th SIGKDD international workshop on
Mining and Learning from Time Series ([MiLeTS'23](https://kdd-milets.github.io/milets2023/))).
**Additionally**, PyPOTS has been included as a [PyTorch Ecosystem](https://pytorch.org/ecosystem/) project.

The paper introducing PyPOTS is available on arXiv at [this URL](https://arxiv.org/abs/2305.18811),
and we are pursuing to publish it in prestigious academic venues, e.g. JMLR (track for
The paper introducing PyPOTS is available [on arXiv](https://arxiv.org/abs/2305.18811),
A short version of it is accepted by the 9th SIGKDD international workshop on Mining and Learning from Time Series ([MiLeTS'23](https://kdd-milets.github.io/milets2023/))).
**Additionally**, PyPOTS has been included as a [PyTorch Ecosystem](https://pytorch.org/ecosystem/) project.
We are pursuing to publish it in prestigious academic venues, e.g. JMLR (track for
[Machine Learning Open Source Software](https://www.jmlr.org/mloss/)). If you use PyPOTS in your work,
please cite it as below and 🌟star this repository to make others notice this library. 🤗

There are scientific research projects using PyPOTS and referencing in their papers.
Here is [an incomplete list of them](https://scholar.google.com/scholar?as_ylo=2022&q=%E2%80%9CPyPOTS%E2%80%9D&hl=en>).
Here is [an incomplete list of them](https://scholar.google.com/scholar?as_ylo=2022&q=%E2%80%9CPyPOTS%E2%80%9D&hl=en).

``` bibtex
@article{du2023pypots,
title={{PyPOTS: a Python toolbox for data mining on Partially-Observed Time Series}},
author={Wenjie Du},
journal={arXiv preprint arXiv:2305.18811},
year={2023},
eprint={2305.18811},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2305.18811},
doi={10.48550/arXiv.2305.18811},
}
```
or
> Wenjie Du. (2023).
> PyPOTS: a Python toolbox for data mining on Partially-Observed Time Series.
> arXiv, abs/2305.18811.https://arxiv.org/abs/2305.18811
> arXiv, abs/2305.18811. https://arxiv.org/abs/2305.18811

## ❖ Contribution
Expand Down Expand Up @@ -340,7 +339,7 @@ We care about the feedback from our users, so we're building PyPOTS community on

- [Slack](https://join.slack.com/t/pypots-org/shared_invite/zt-1gq6ufwsi-p0OZdW~e9UW_IA4_f1OfxA). General discussion, Q&A, and our development team are here;
- [LinkedIn](https://www.linkedin.com/company/pypots). Official announcements and news are here;
- [WeChat (微信公众号)](https://mp.weixin.qq.com/s/sNgZmgAyxDn2sZxXoWJYMA). We also run a group chat on WeChat,
- [WeChat (微信公众号)](https://mp.weixin.qq.com/s/X3ukIgL1QpNH8ZEXq1YifA). We also run a group chat on WeChat,
and you can get the QR code from the official account after following it;

If you have any suggestions or want to contribute ideas or share time-series related papers, join us and tell.
Expand Down
32 changes: 14 additions & 18 deletions README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ PyPOTS当前支持多变量POTS数据的插补,预测,分类,聚类以及

👈 在PyPOTS中,数据可以被看作是咖啡豆,而写的携带缺失值的POTS数据则是不完整的咖啡豆。
为了让用户能够轻松使用各种开源的时间序列数据集,我们创建了开源时间序列数据集的仓库 Time Series Data Beans (TSDB)(可以将其视为咖啡豆仓库),
TSDB让加载开源时序数据集变得超级简单!访问 [TSDB](https://github.com/WenjieDu/TSDB),了解更多关于TSDB的信息,目前总共支持169个开源数据集
TSDB让加载开源时序数据集变得超级简单!访问 [TSDB](https://github.com/WenjieDu/TSDB),了解更多关于TSDB的信息,目前总共支持170个开源数据集

<a href="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/WenjieDu/PyGrinder">
<img src="https://pypots.com/figs/pypots_logos/PyGrinder/logo_FFBG.svg" align="right" width="140" alt="PyGrinder logo"/>
Expand All @@ -167,8 +167,8 @@ PyGrinder支持以上所有模式并提供与缺失相关的其他功能函数
<img src="https://pypots.com/figs/pypots_logos/BrewPOTS/logo_FFBG.svg" align="right" width="140" alt="BrewPOTS logo"/>
</a>

👉 现在我们有了咖啡豆、磨豆机和咖啡壶,那么如何萃取一杯咖啡呢?冲泡教程是必不可少的!
考虑到未来的工作量,PyPOTS的相关教程将发布在一个独立的仓库[BrewPOTS](https://github.com/WenjieDu/BrewPOTS)中。
👉 现在我们有了咖啡豆(beans)、磨豆机(grinder)和咖啡壶(pot),让我们坐在长凳(bench)上想想如何萃取一杯咖啡呢?
教程必不可少!考虑到未来的工作量,PyPOTS的相关教程将发布在一个独立的仓库[BrewPOTS](https://github.com/WenjieDu/BrewPOTS)中。
点击访问查看教程,学习如何萃取你的POTS数据!

<p align="center">
Expand Down Expand Up @@ -244,16 +244,16 @@ saits.load("save_it_here/saits_physionet2012.pypots") # 你随时可以重新

## ❖ 引用PyPOTS
> [!TIP]
> **[2024年2月更新]** 😎 我们的综述论文[Deep Learning for Multivariate Time Series Imputation: A Survey](https://arxiv.org/abs/2402.04059)
> 已在 arXiv 上发布,代码也在GitHub项目([Awesome_Imputation](https://github.com/WenjieDu/Awesome_Imputation))上开源。
> 我们全面调研总结了最新基于深度学习的时间序列插补方法文献并对现有的方法进行分类,除此之外,还讨论了该领域当前的挑战和未来发展方向。
> **[2024年6月更新]** 😎 第一个全面的时间序列插补基准论文[TSI-Bench: Benchmarking Time Series Imputation](https://arxiv.org/abs/2406.12747)现在来了。
> 所有代码开源在[Awesome_Imputation](https://github.com/WenjieDu/Awesome_Imputation)仓库中。通过近35,000个实验,我们对28种imputation方法,3种缺失模式(点,序列,块),各种缺失率,和8个真实数据集进行了全面的基准研究。
>
> **[2023年6月更新]** 🎉 PyPOTS的5页短版论文已被第9届SIGKDD international workshop on
Mining and Learning from Time Series ([MiLeTS'23](https://kdd-milets.github.io/milets2023/))收录。
> 此外,PyPOTS也已被纳入[PyTorch Ecosystem](https://pytorch.org/ecosystem/)
> **[2024年2月更新]** 🎉 我们的综述论文[Deep Learning for Multivariate Time Series Imputation: A Survey](https://arxiv.org/abs/2402.04059)
> 已在 arXiv 上发布。我们全面调研总结了最新基于深度学习的时间序列插补方法文献并对现有的方法进行分类,此外,还讨论了该领域当前的挑战和未来发展方向。
介绍PyPOTS的论文可以通过[该链接](https://arxiv.org/abs/2305.18811)在arXiv上获取,我们正在努力将其发表在更具影响力的学术刊物上,
例如JMLR (track for [Machine Learning Open Source Software](https://www.jmlr.org/mloss/))。
PyPOTS的论文可以[在arXiv上获取](https://arxiv.org/abs/2305.18811),其5页的短版论文已被第9届SIGKDD international workshop on
Mining and Learning from Time Series ([MiLeTS'23](https://kdd-milets.github.io/milets2023/))收录,与此同时,
PyPOTS也已被纳入[PyTorch Ecosystem](https://pytorch.org/ecosystem/)。我们正在努力将其发表在更具影响力的学术刊物上,
如JMLR (track for [Machine Learning Open Source Software](https://www.jmlr.org/mloss/))。
如果你在工作中使用了PyPOTS,请按照以下格式引用我们的论文并为将项目设为星标🌟,以便让更多人关注到它,对此我们深表感谢🤗。

据不完全统计,该[列表](https://scholar.google.com/scholar?as_ylo=2022&q=%E2%80%9CPyPOTS%E2%80%9D&hl=en>)为当前使用PyPOTS并在其论文中引用PyPOTS的科学研究项目
Expand All @@ -262,18 +262,14 @@ Mining and Learning from Time Series ([MiLeTS'23](https://kdd-milets.github.io/m
@article{du2023pypots,
title={{PyPOTS: a Python toolbox for data mining on Partially-Observed Time Series}},
author={Wenjie Du},
journal={arXiv preprint arXiv:2305.18811},
year={2023},
eprint={2305.18811},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2305.18811},
doi={10.48550/arXiv.2305.18811},
}
```
或者
> Wenjie Du. (2023).
> PyPOTS: a Python toolbox for data mining on Partially-Observed Time Series.
> arXiv, abs/2305.18811.https://arxiv.org/abs/2305.18811
> arXiv, abs/2305.18811. https://arxiv.org/abs/2305.18811

## ❖ 贡献声明
Expand Down Expand Up @@ -315,7 +311,7 @@ doi={10.48550/arXiv.2305.18811},

- [Slack](https://join.slack.com/t/pypots-org/shared_invite/zt-1gq6ufwsi-p0OZdW~e9UW_IA4_f1OfxA):你可以在这里进行日常讨论、问答以及与我们的开发团队交流;
- [领英](https://www.linkedin.com/company/pypots):你可以在这里获取官方公告和新闻;
- [微信公众号](https://mp.weixin.qq.com/s/sNgZmgAyxDn2sZxXoWJYMA):你可以关注官方公众号并加入微信群聊参与讨论以及获取最新动态;
- [微信公众号](https://mp.weixin.qq.com/s/X3ukIgL1QpNH8ZEXq1YifA):你可以关注官方公众号并加入微信群聊参与讨论以及获取最新动态;

如果你有任何建议、想法、或打算分享与时间序列相关的论文,欢迎加入我们!
PyPOTS社区是一个开放、透明、友好的社区,让我们共同努力建设并改进PyPOTS!
Expand Down
8 changes: 4 additions & 4 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ And what else? Please read on ;-)
👈 Time series datasets are taken as coffee beans at PyPOTS, and POTS datasets are incomplete coffee beans with missing parts that have their own meanings.
To make various public time-series datasets readily available to users,
*Time Series Data Beans (TSDB)* is created to make loading time-series datasets super easy!
Visit `TSDB <https://github.com/WenjieDu/TSDB>`_ right now to know more about this handy tool 🛠, and it now supports a total of 168 open-source datasets!
Visit `TSDB <https://github.com/WenjieDu/TSDB>`_ right now to know more about this handy tool 🛠, and it now supports a total of 170 open-source datasets!

.. image:: https://pypots.com/figs/pypots_logos/PyGrinder/logo_FFBG.svg
:width: 150
Expand Down Expand Up @@ -250,8 +250,8 @@ POTS algorithms on various tasks.
:align: right
:target: https://github.com/WenjieDu/BrewPOTS

👉 Now we have the beans, the grinder, and the pot, how to brew us a cup of coffee? Tutorials are necessary!
Considering the future workload, PyPOTS tutorials is released in a single repo,
👉 Now the beans, grinder, and pot are ready, please have a seat on the bench and let's think about how to brew us a cup of coffee.
Tutorials are necessary! Considering the future workload, PyPOTS tutorials is released in a single repo,
and you can find them in `BrewPOTS <https://github.com/WenjieDu/BrewPOTS>`_.
Take a look at it now, and learn how to brew your POTS datasets!

Expand Down Expand Up @@ -351,7 +351,7 @@ We care about the feedback from our users, so we're building PyPOTS community on

- `Slack <https://join.slack.com/t/pypots-org/shared_invite/zt-1gq6ufwsi-p0OZdW~e9UW_IA4_f1OfxA>`_. General discussion, Q&A, and our development team are here;
- `LinkedIn <https://www.linkedin.com/company/pypots>`_. Official announcements and news are here;
- `WeChat (微信公众号) <https://mp.weixin.qq.com/s/sNgZmgAyxDn2sZxXoWJYMA>`_. We also run a group chat on WeChat,
- `WeChat (微信公众号) <https://mp.weixin.qq.com/s/X3ukIgL1QpNH8ZEXq1YifA>`_. We also run a group chat on WeChat,
and you can get the QR code from the official account after following it;

If you have any suggestions or want to contribute ideas or share time-series related papers, join us and tell.
Expand Down
21 changes: 10 additions & 11 deletions docs/milestones.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,12 @@ please cite it as below and 🌟star `PyPOTS repository <https://github.com/Wenj
.. code-block:: bibtex
:linenos:
@article{du2023pypots,
title={{PyPOTS: A Python Toolbox for Data Mining on Partially-Observed Time Series}},
author={Wenjie Du},
year={2023},
eprint={2305.18811},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2305.18811},
doi={10.48550/arXiv.2305.18811},
}
@article{du2023pypots,
title={{PyPOTS: a Python toolbox for data mining on Partially-Observed Time Series}},
author={Wenjie Du},
journal={arXiv preprint arXiv:2305.18811},
year={2023},
}
or

Expand All @@ -43,10 +39,13 @@ Project Milestones
^^^^^^^^^^^^^^^^^^
- 2022-03: `PyPOTS project <https://github.com/WenjieDu/PyPOTS>`_ is initiated;
- 2022-04: PyPOTS v0.0.1 is released;
- 2022-09: PyPOTS achieves its first 100 stars on GitHub;
- 2022-09: PyPOTS achieves its first 100 stars ⭐️ on GitHub;
- 2023-03: PyPOTS is `published on Conda-Forge <https://anaconda.org/conda-forge/pypots>`_, and users can install it via Anaconda;
- 2023-04: `PyPOTS website <https://pypots.com>`_ is launched, and PyPOTS achieves its first 10K downloads on PyPI;
- 2023-05: PyPOTS v0.1 is released, and `the preprint paper <https://arxiv.org/abs/2305.18811>`_ is published on arXiv;
- 2023-06: A short version of PyPOTS paper is accepted by the 9th SIGKDD International
Workshop on Mining and Learning from Time Series (`MiLeTS'23 <https://kdd-milets.github.io/milets2023/>`_);
- 2023-07: PyPOTS has been accepted as a `PyTorch Ecosystem <https://pytorch.org/ecosystem/>`_ project;
- 2023-12: PyPOTS achieves its first 500 stars 🌟;
- 2024-02: PyPOTS Research releases its imputation survey paper `Deep Learning for Multivariate Time Series Imputation: A Survey <https://arxiv.org/abs/2402.04059>`_;
- 2024-06: PyPOTS Research releases the 1st comprehensive time-series imputation benchmark paper `TSI-Bench: Benchmarking Time Series Imputation <https://arxiv.org/abs/2406.12747>`_;
8 changes: 8 additions & 0 deletions docs/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -737,3 +737,11 @@ @inproceedings{cao2020stemgnn
volume = {33},
year = {2020}
}

@inproceedings{xu2024fits,
title={{FITS}: Modeling Time Series with \$10k\$ Parameters},
author={Zhijian Xu and Ailing Zeng and Qiang Xu},
booktitle={The Twelfth International Conference on Learning Representations},
year={2024},
url={https://openreview.net/forum?id=bWcnvZ3qMb}
}
3 changes: 2 additions & 1 deletion pypots/cli/tuning.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
# License: BSD-3-Clause


import inspect
import os
from argparse import ArgumentParser, Namespace

Expand Down Expand Up @@ -237,7 +238,7 @@ def run(self):
lr = tuner_params.pop("lr")

# check if hyperparameters match
model_all_arguments = model_class.__init__.__annotations__.keys()
model_all_arguments = inspect.signature(model_class).parameters.keys()
tuner_params_set = set(tuner_params.keys())
model_arguments_set = set(model_all_arguments)
if_hyperparameter_match = tuner_params_set.issubset(model_arguments_set)
Expand Down
2 changes: 1 addition & 1 deletion pypots/imputation/tide/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
Notes
-----
This implementation is inspired by the official one
https://github.com/google-research/google-research/blob/master/tide and
https://github.com/google-research/google-research/blob/master/tide and https://github.com/lich99/TiDE
"""

Expand Down
17 changes: 7 additions & 10 deletions pypots/imputation/tide/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

class TiDE(BaseNNImputer):
"""The PyTorch implementation of the TiDE model.
TiDE is originally proposed by Wu et al. in :cite:`wu2021TiDE`.
TiDE is originally proposed by Das et al. in :cite:`das2023tide`.
Parameters
----------
Expand All @@ -39,17 +39,14 @@ class TiDE(BaseNNImputer):
d_model :
The dimension of the model.
n_heads :
The number of heads in each layer of TiDE.
d_hidden :
The dimension of the hidden layer in the model.
d_ffn :
The dimension of the feed-forward network.
d_feature_encode :
The dimension of the feature encoder.
factor :
The factor of the auto correlation mechanism for the TiDE model.
moving_avg_window_size :
The window size of moving average.
d_temporal_decoder_hidden :
The dimension of the hidden layer in the temporal decoder.
dropout :
The dropout rate for the model.
Expand Down
1 change: 0 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
Expand Down

0 comments on commit 8956ac5

Please sign in to comment.