部分的に観察された時系列の機械学習用のPythonツールボックス
⦿ Motivation :収集センサーの障害、通信エラー、予期しない誤動作など、あらゆる種類の理由により、欠損値は、実際の環境からの時系列で見られるのが一般的です。これにより、部分的に観察された時系列(POTS)がオープンワールドモデリングにおける広範な問題になり、高度なデータ分析を防ぎます。この問題は重要ですが、ポット上の機械学習の領域にはまだ専用のツールキットがありません。 Pypotsは、この空白を埋めるために作成されています。
⦿ Mission :パイポ(「パイポット」と発音)は、エンジニアや研究者がデータの不足している部品に対処する方法ではなく、手の中核的な問題に集中できるように、退屈ではなくポットでの機械学習を簡単にする便利なツールボックスになるために生まれます。 Pypotsは、部分的に観察された多変量時系列のために、クラシックと最新の最新機械学習アルゴリズムを統合し続けます。確かに、さまざまなアルゴリズムに加えて、Pypotsは、チュートリアルとしてのアルゴリズム全体の詳細なドキュメントとインタラクティブな例とともに統一されたAPIを持つことになります。
?あなたがそれが便利なツールキットだと思うなら、他の人がパイプに気づくのを助けるために、このレポを主演させてください。それがあなたの研究に役立つならば、あなたの出版物のパイピを親切に引用してください。これは、オープンソースの研究にとって本当に大きな意味があります。ありがとう!
このREADMEファイルの残りの部分は、次のように整理されています。❖利用可能なアルゴリズム、 ❖Pypots Ecosystem 、 ❖取り付け、❖使用法、 ❖Pypots 、 ❖貢献、 ❖コミュニティ。
Pypotsは、欠損値を持つ多変量部分観測時系列の代入、分類、クラスタリング、予測、および異常検出タスクをサポートします。以下の表は、さまざまなタスクのパイポの各アルゴリズム(年ごとにソート)の可用性を示しています。シンボル✅アルゴリズムが対応するタスクで使用可能であることを示します(モデルは、現在サポートされていないタスクを処理するために将来継続的に更新されることに注意してください。
? v0.2以来、Pypotsのすべてのニューラルネットワークモデルには、ハイパーパラメーター最適化サポートがあります。この機能は、Microsoft NNIフレームワークで実装されています。 Time-Series Inputation Survey Repo Awesome_imputationを参照して、ハイパーパラメーターを構成してチューニングする方法を確認することをお勧めします。
名前を付けたすべてのモデルが??表(たとえば、Transformer、Itransformer、Informerなど)では、元々は論文内のPOTSデータのアルゴリズムとして提案されておらず、入力として欠損値を持つ時系列を直接受け入れることはできません。それらをPOTSデータに適用できるようにするために、Saits Paper 1で行ったのと同じように、埋め込み戦略およびトレーニングアプローチ(ORT+MIT)を具体的に適用します。
タスクタイプは次のように省略されますIMPU FORE :予測。 CLAS :分類; CLUS :クラスタリング; ANOD :異常検出。紙の参照とリンクはすべてこのファイルの下部にリストされています。
| タイプ | アルゴ | インピー | 前面 | クラス | clus | アノド | 年 - 会場 |
|---|---|---|---|---|---|---|---|
| LLM | 時系列 | ✅ | ✅ | ✅ | ✅ | ✅ | Later in 2024 |
| ニューラルネット | tefn?? 3 | ✅ | 2024 - arXiv | ||||
| ニューラルネット | フィット?? 4 | ✅ | 2024 - ICLR | ||||
| ニューラルネット | タイムミキサー5 | ✅ | 2024 - ICLR | ||||
| ニューラルネット | itransformer?? 6 | ✅ | 2024 - ICLR | ||||
| ニューラルネット | Moderntcn 7 | ✅ | 2024 - ICLR | ||||
| ニューラルネット | InputeFormer?? 8 | ✅ | 2024 - KDD | ||||
| ニューラルネット | SAITS 1 | ✅ | 2023 - ESWA | ||||
| ニューラルネット | フレット?? 9 | ✅ | 2023 - NeurIPS | ||||
| ニューラルネット | koopa?? 10 | ✅ | 2023 - NeurIPS | ||||
| ニューラルネット | クロスフォーマー?? 11 | ✅ | 2023 - ICLR | ||||
| ニューラルネット | TimesNet 12 | ✅ | 2023 - ICLR | ||||
| ニューラルネット | patchtst?? 13 | ✅ | 2023 - ICLR | ||||
| ニューラルネット | etformer?? 14 | ✅ | 2023 - ICLR | ||||
| ニューラルネット | micn?? 15 | ✅ | 2023 - ICLR | ||||
| ニューラルネット | dlinear?? 16 | ✅ | 2023 - AAAI | ||||
| ニューラルネット | 潮? 17 | ✅ | 2023 - TMLR | ||||
| ニューラルネット | CSAI 18 | ✅ | ✅ | 2023 - arXiv | |||
| ニューラルネット | segrnn?? 19 | ✅ | 2023 - arXiv | ||||
| ニューラルネット | シネット?? 20 | ✅ | 2022 - NeurIPS | ||||
| ニューラルネット | 非定常tr.?? 21 | ✅ | 2022 - NeurIPS | ||||
| ニューラルネット | 膜? 22 | ✅ | 2022 - NeurIPS | ||||
| ニューラルネット | revin_scinet?? 23 | ✅ | 2022 - ICLR | ||||
| ニューラルネット | pyraformer?? 24 | ✅ | 2022 - ICLR | ||||
| ニューラルネット | レインドロップ25 | ✅ | 2022 - ICLR | ||||
| ニューラルネット | Fedformer?? 26 | ✅ | 2022 - ICML | ||||
| ニューラルネット | オートフォーカー?? 27 | ✅ | 2021 - NeurIPS | ||||
| ニューラルネット | CSDI 28 | ✅ | ✅ | 2021 - NeurIPS | |||
| ニューラルネット | 情報提供者?? 29 | ✅ | 2021 - AAAI | ||||
| ニューラルネット | US-Gan 30 | ✅ | 2021 - AAAI | ||||
| ニューラルネット | CRLI 31 | ✅ | 2021 - AAAI | ||||
| 確率的 | BTTF 32 | ✅ | 2021 - TPAMI | ||||
| ニューラルネット | stemgnn?? 33 | ✅ | 2020 - NeurIPS | ||||
| ニューラルネット | 改革者?? 34 | ✅ | 2020 - ICLR | ||||
| ニューラルネット | GP-VAE 35 | ✅ | 2020 - AISTATS | ||||
| ニューラルネット | ベイダー36 | ✅ | 2019 - GigaSci. | ||||
| ニューラルネット | M-RNN 37 | ✅ | 2019 - TBME | ||||
| ニューラルネット | 英国人38 | ✅ | ✅ | 2018 - NeurIPS | |||
| ニューラルネット | Gru-D 39 | ✅ | ✅ | 2018 - Sci. Rep. | |||
| ニューラルネット | tcn?? 40 | ✅ | 2018 - arXiv | ||||
| ニューラルネット | トランス? 41 | ✅ | 2017 - NeurIPS | ||||
| 素朴です | LERP 42 | ✅ | |||||
| 素朴です | locf/nocb | ✅ | |||||
| 素朴です | 平均 | ✅ | |||||
| 素朴です | 中央値 | ✅ |
?あなたの研究への影響を高めるために、今あなたのモデルを貢献してください! Pypotsのダウンロードは急速に増加しています(これまでに合計で300K+、Pypiで毎日1k+ )。あなたの仕事はコミュニティによって広く使用され、引用されます。貢献ガイドを参照して、モデルをPypotsに含める方法を確認してください。
Pypotsでは、物事はコーヒーに関連しています。はい、これはコーヒーユニバースです!ご覧のとおり、Pypotsのロゴにはコーヒーポットがあります。そして他に何?読んでください;-)
?時系列データセットは、パイポのコーヒー豆として撮影され、ポットデータセットは、独自の意味を持つ部品が欠けている不完全なコーヒー豆です。さまざまな公共の時系列データセットをユーザーがすぐに利用できるようにするために、時系列のデータ豆(TSDB)が作成され、ロードタイムシリーズデータセットを非常に簡単にします!今すぐTSDBにアクセスして、この便利なツールについて詳しく知ることができます。これで、合計172のオープンソースデータセットをサポートしています。
不足している実際のデータ豆をシミュレートするために、生態系ライブラリPygrinderは、コーヒー豆を不完全なものに粉砕するのに役立つツールキットが作成されます。ロビンの理論43 :MCAR(完全にランダムに欠落している)、MAR(ランダムに欠落)、およびMNAR(ランダムではない)によると、パターンが3つのカテゴリに分類されます。 Pygrinderは、それらのすべてと欠落に関連する追加の機能をサポートします。 Pygrinderを使用すると、単一のコードを使用して合成欠損値をデータセットに導入できます。
? Pypotsアルゴリズムのパフォーマンスを公正に評価するために、ベンチマークスイートベンチポットが作成されます。これにより、さまざまなタスク上のさまざまなポットアルゴリズムのパフォーマンスを測定するためのデータセットを準備するための標準および統一されたデータ処理パイプラインが提供されます。
これで、豆、グラインダー、ポットの準備が整いました。ベンチに座って、コーヒーを飲む方法について考えてみましょう。チュートリアルが必要です!将来のワークロードを考慮すると、Pypotsチュートリアルは単一のリポジトリでリリースされ、Brewpotsで見つけることができます。今すぐ見て、ポットデータセットを醸造する方法を学びましょう!
pypotsの宇宙へようこそ。楽しんで楽しんでください!
詳細を記載したガイドラインについては、Pypotsドキュメントのインストール命令を参照できます。
Pypotsは、PypiとAnacondaの両方で入手できます。 TSDB、Pygrinder、Benchpots、およびAI4TSのようなパイポットをインストールできます。
# via pip
pip install pypots # the first time installation
pip install pypots --upgrade # update pypots to the latest version
# install from the latest source code with the latest features but may be not officially released yet
pip install https://github.com/WenjieDu/PyPOTS/archive/main.zip
# via conda
conda install conda-forge::pypots # the first time installation
conda update conda-forge::pypots # update pypots to the latest version Brewpotsに加えて、Google Colabでシンプルでクイックスタートのチュートリアルノートブックを見つけることもできます。さらに質問がある場合は、Pypots Documentation docs.pypots.comを参照してください。また、私たちのコミュニティで問題を提起したり、尋ねたりすることもできます。
以下のパイポットを使用して、時系列に欠損値を帰属させる使用例を提示します。それをクリックして表示できます。
# Data preprocessing. Tedious, but PyPOTS can help.
import numpy as np
from sklearn . preprocessing import StandardScaler
from pygrinder import mcar
from pypots . data import load_specific_dataset
data = load_specific_dataset ( 'physionet_2012' ) # PyPOTS will automatically download and extract it.
X = data [ 'X' ]
num_samples = len ( X [ 'RecordID' ]. unique ())
X = X . drop ([ 'RecordID' , 'Time' ], axis = 1 )
X = StandardScaler (). fit_transform ( X . to_numpy ())
X = X . reshape ( num_samples , 48 , - 1 )
X_ori = X # keep X_ori for validation
X = mcar ( X , 0.1 ) # randomly hold out 10% observed values as ground truth
dataset = { "X" : X } # X for model input
print ( X . shape ) # (11988, 48, 37), 11988 samples and each sample has 48 time steps, 37 features
# Model training. This is PyPOTS showtime.
from pypots . imputation import SAITS
from pypots . utils . metrics import calc_mae
saits = SAITS ( n_steps = 48 , n_features = 37 , n_layers = 2 , d_model = 256 , n_heads = 4 , d_k = 64 , d_v = 64 , d_ffn = 128 , dropout = 0.1 , epochs = 10 )
# Here I use the whole dataset as the training set because ground truth is not visible to the model, you can also split it into train/val/test sets
saits . fit ( dataset ) # train the model on the dataset
imputation = saits . impute ( dataset ) # impute the originally-missing values and artificially-missing values
indicating_mask = np . isnan ( X ) ^ np . isnan ( X_ori ) # indicating mask for imputation error calculation
mae = calc_mae ( imputation , np . nan_to_num ( X_ori ), indicating_mask ) # calculate mean absolute error on the ground truth (artificially-missing values)
saits . save ( "save_it_here/saits_physionet2012.pypots" ) # save the model for future use
saits . load ( "save_it_here/saits_physionet2012.pypots" ) # reload the serialized model file for following imputation or training ヒント
[2024年6月に更新] ?最初の包括的なタイムシャー代替ベンチマークペーパーTSIベンチ:ベンチマーク時系列代入は現在公開されています。このコードは、Repo Awesome_imputationのオープンソースです。約35,000の実験で、28の帰属方法、3つの欠落パターン(ポイント、シーケンス、ブロック)、さまざまな欠落率、および8つの実際のデータセットに関する包括的なベンチマーク研究を提供します。
[2024年2月に更新] ?多変量時系列代入のための調査論文の深い学習:調査はArxivでリリースされました。私たちは、時系列の最先端の深部学習補完方法の文献を包括的にレビューし、それらに分類を提供し、この分野の課題と将来の方向性について議論します。
Pypotsを導入する論文はArxivで入手でき、その短いバージョンは、鉱業と時系列からの学習に関する第9 Sigkdd国際ワークショップ(Milets'23)で受け入れられています)。さらに、PypotsはPytorchエコシステムプロジェクトとして含まれています。私たちは、それを名誉あるアカデミック会場、例えばJMLR(機械学習のオープンソースソフトウェアのトラック)で公開しようとしています。作品でパイポットを使用している場合は、以下のように引用して、このリポジトリを主演させて、他の人にこのライブラリに気付かせてください。 ?
Pypotを使用して、論文に参照している科学的研究プロジェクトがあります。これらの不完全なリストは次のとおりです。
@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 } ,
}または
Wenjie du。 Pypots:部分的に観察された時系列でのデータマイニング用のPythonツールボックス。 Arxiv、ABS/2305.18811、2023。
このエキサイティングなプロジェクトに貢献できてとても歓迎します!
あなたのコードをコミットすることで、あなたはでしょう
templateフォルダーを使用して、迅速に起動できます。単に凝視することでパイポットに貢献することもできますか?より多くの人々がそれに気付くのを助けるこのレポ。あなたの星はあなたのパイポットに対するあなたの認識であり、それは重要です!
? Pypots Webサイトでユーザーの提携の完全なリストをご覧ください!
私たちはユーザーからのフィードバックを気にかけているので、Pypotsコミュニティを構築しています
提案がある場合、またはアイデアを提供したり、タイムシリーズ関連の論文を共有したりしたい場合は、ご参加ください。 Pypots Communityはオープンで透明で、確かにフレンドリーです。協力して、パイポットを構築して改善しましょう!
Du、W.、Cote、D。、&Liu、Y。(2023)。 SAITS:時系列の自己関節に基づく帰属。アプリケーションを備えたエキスパートシステム。 ↩2
Project Gungnir、Time-Series MultiTask Modelingの世界1st LLMは、すぐにお会いします。データセットに値と変動の長さがありませんか?あなたの時系列でマルチタスク学習を実行するのは難しいですか?問題はもうありません。最近、パブリックベータテストの申請を開きます;-)フォローして、お楽しみに!時系列
Zhan、T.、He、Y.、Deng、Y.、Li、Z.、Du、W。、&Wen、Q。(2024)。時間証拠融合ネットワーク:長期の時系列予測におけるマルチソースビュー。 ARXIV 2024 。 ↩
Xu、Z.、Zeng、A。、&Xu、Q。(2024)。適合:10Kパラメーターを使用した時系列のモデリング。 ICLR 2024 。 ↩
Wang、S.、Wu、H.、Shi、X.、Hu、T.、Luo、H.、Ma、L.、...&Zhou、J。(2024)。 Timemixer:時系列予測のための分解可能なマルチスケールミキシング。 ICLR 2024 。 ↩
Liu、Y.、Hu、T.、Zhang、H.、Wu、H.、Wang、S.、Ma、L。、&Long、M。(2024)。 itransformer:逆変圧器は、時系列予測に効果的です。 ICLR 2024 。 ↩
Luo、D。、&Wang X.(2024)。 ModernTCN:一般的な時系列分析のための現代の純粋な畳み込み構造。 ICLR 2024 。 ↩
Nie、T.、Qin、G.、Mei、Y。、およびSun、J。(2024)。 InputeFormer:一般化可能な空間的代入のための低ランク性誘導トランス。 KDD 2024 。 ↩
Yi、K.、Zhang、Q.、Fan、W.、Wang、S.、Wang、P.、H.、H.、An、N.、Lian、D.、Cao、L。、&Niu、Z。(2023)。周波数ドメインMLPは、時系列予測においてより効果的な学習者です。ニューリップ2023 。 ↩
Liu、Y.、Li、C.、Wang、J。、&Long、M。(2023)。 Koopa:Koopman予測因子を使用した非定常時系列ダイナミクスの学習。ニューリップ2023 。 ↩
Zhang、Y。、&Yan、J。(2023)。クロスフォーマー:多変量の時系列予測に相互次元依存性を利用するトランス。 ICLR 2023 。 ↩
Wu、H.、Hu、T.、Liu、Y.、Zhou、H.、Wang、J。、&Long、M。(2023)。 TimesNet:一般的な時系列分析のための時間的2D変数モデリング。 ICLR 2023↩
Nie、Y.、Nguyen、NH、Sinthong、P。、およびKalagnanam、J。(2023)。時系列は64語の価値があります:変圧器による長期予測。 ICLR 2023↩
Woo、G.、Liu、C.、Sahoo、D.、Kumar、A。、&Hoi、S。(2023)。 ETSFORMER:時系列予測用の指数スムージングトランス。 ICLR 2023↩
Wang、H.、Peng、J.、Huang、F.、Wang、J.、Chen、J。、&Xiao、Y。(2023)。 MICN:長期シリーズ予測のためのマルチスケールローカルおよびグローバルコンテキストモデリング。 ICLR 2023 。 ↩
Zeng、A.、Chen、M.、Zhang、L。、&Xu、Q。(2023)。トランスは時系列予測に効果的ですか? aaai 2023↩
Das、A.、Kong、W.、Leach、A.、Mathur、S.、Sen、R。、&Yu、R。(2023)。潮を伴う長期予測:時系列密度の高いエンコーダー。 TMLR 2023 。 ↩
Qian、L.、Ibrahim、Z.、Ellis、HL、Zhang、A.、Zhang、Y.、Wang、T。、&Dobson、R。(2023)。知識は、ヘルスケアの時系列の条件付き代入を強化しました。 ARXIV 2023 。 ↩
Lin、S.、Lin、W.、Wu、W.、Zhao、F.、Mo、R。、&Zhang、H。(2023)。 segrnn:長期の時系列予測のためのセグメント再発ニューラルネットワーク。 ARXIV 2023 。 ↩
Liu、M.、Zeng、A.、Chen、M.、Xu、Z.、Lai、Q.、Ma、L。&Xu、Q。(2022)。 SCINET:サンプルの畳み込みと相互作用による時系列モデリングと予測。ニューリップ2022 。 ↩
Liu、Y.、Wu、H.、Wang、J。、&Long、M。(2022)。非定常変圧器:時系列予測における定常性の調査。ニューリップ2022 。 ↩
Zhou、T.、Ma、Z.、Wen、Q.、Sun、L.、Yao、T.、Yin、W。、およびJin、R。(2022)。フィルム:長期の時系列予測のための頻度が改善されたLegendREメモリモデル。ニューリップ2022 。 ↩
Kim、T.、Kim、J.、Tae、Y.、Park、C.、Choi、JH、&Choo、J。(2022)。分布シフトに対する正確な時系列予測のための可逆的インスタンス正規化。 ICLR 2022 。 ↩
Liu、S.、Yu、H.、Liao、C.、Li、J.、Lin、W.、Liu、Ax、&Dustdar、S。(2022)。 Pyraformer:長距離時系列モデリングと予測に対する低複透明ピラミッドの注意。 ICLR 2022 。 ↩
Zhang、X.、Zeman、M.、Tsiligkaridis、T。、&Zitnik、M。(2022)。不規則にサンプリングされた多変量時系列のグラフ誘導ネットワーク。 ICLR 2022 。 ↩
Zhou、T.、Ma、Z.、Wen、Q.、Wang、X.、Sun、L。、およびJin、R。(2022)。 Fedformer:長期シリーズ予測用の周波数強化分解された変圧器。 ICML 2022 。 ↩
Wu、H.、Xu、J.、Wang、J。、&Long、M。(2021)。オートフォーカー:長期シリーズ予測のための自動相関を備えた分解トランス。ニューリップ2021 。 ↩
Tashiro、Y.、Song、J.、Song、Y。、&Ermon、S。(2021)。 CSDI:確率的時系列代入の条件付きスコアベースの拡散モデル。ニューリップ2021 。 ↩
Zhou、H.、Zhang、S.、Peng、J.、Zhang、S.、Li、J.、Xiong、H。、&Zhang、W。(2021)。情報提供者:長いシーケンスの時間シリーズ予測のための効率的な変圧器を超えて。 AAAI 2021 。 ↩
Miao、X.、Wu、Y.、Wang、J.、Gao、Y.、Mao、X。、&Yin、J。(2021)。多変量時系列代入のための生成的半教師学習。 AAAI 2021 。 ↩
Ma、Q.、Chen、C.、Li、S。、およびCottrell、GW(2021)。不完全な時系列クラスタリングの学習表現。 AAAI 2021 。 ↩
Chen、X。、&Sun、L。(2021)。多次元時系列予測のためのベイジアン時間的因数分解。パターン分析とマシンインテリジェンスに関するIEEEトランザクション。 ↩
Cao、D.、Wang、Y.、Duan、J.、Zhang、C.、Zhu、X.、Huang、C.、Tong、Y.、Xu、B.、Bai、J.、Tong、J。、&Zhang、Q。(2020)。多変量の時系列予測のためのスペクトル時間グラフニューラルネットワーク。ニューリップ2020 。 ↩
Kitaev、N.、Kaiser、„、&Levskaya、A。(2020)。改革者:効率的な変圧器。 ICLR 2020 。 ↩
Fortuin、V.、Baranchuk、D.、Raetsch、G。&Mandt、S。(2020)。 GP-VAE:深い確率論的時系列代入。 Aistats 2020 。 ↩
Jong、JD、Emon、Ma、Wu、P.、Karki、R.、Sood、M.、Godard、P.、Ahmad、A.、Vrooman、Ha、Hofmann-Apitius、M。、およびFröhlich、H。(2019)。欠損値を持つ多変量臨床患者の軌跡のクラスタリングのための深い学習。 gigascience 。 ↩
Yoon、J.、Zame、WR、&Van der Schaar、M。(2019)。多方向の再発ニューラルネットワークを使用して、時間データストリームの欠落データを推定します。生物医学工学に関するIEEE取引。 ↩
Cao、W.、Wang、D.、Li、J.、Zhou、H.、Li、L。、&Li、Y。(2018)。英国人:時系列の双方向の再発者。 Neurips 2018 。 ↩
Che、Z.、Purushotham、S.、Cho、K.、Sontag、Da、&Liu、Y。(2018)。欠損値を持つ多変量時系列の再発ニューラルネットワーク。科学レポート。 ↩
Bai、S.、Kolter、JZ、&Koltun、V。(2018)。シーケンスモデリングのための一般的な畳み込みおよび再発ネットワークの経験的評価。 ARXIV 2018 。 ↩
Vaswani、A.、Shazeer、NM、Parmar、N.、Uszkoreit、J.、Jones、L.、Gomez、An、Kaiser、L。、&Polosukhin、I。(2017)。注意が必要です。 Neurips 2017 。 ↩
ウィキペディア:線形補間↩
ルービン、DB(1976)。推論と欠落データ。バイオメトリカ。 ↩