Skip to content

Comparison with giotto tda

Taiyou edited this page Jan 26, 2026 · 2 revisions

Comparison with giotto-tda

delay-embedding の結果を、既存の遅延埋め込みライブラリ giotto-tda (SingleTakensEmbedding) と比較しました。

Comparison


数値的正確性

sin(t) に対して m=3, τ=7 で両ライブラリの出力を要素ごとに比較した結果:

指標
最大絶対差 0.00e+00
平均絶対差 0.00e+00

完全一致 — 両ライブラリは全く同じ数値結果を生成します。


パフォーマンス比較

20回の平均実行時間(m=3, τ=7):

時系列長 delay-embedding giotto-tda
500 高速 低速
1,000 高速 低速
5,000 高速 低速
10,000 高速 低速
20,000 高速 低速

上の図(右上パネル)に示す通り、delay-embedding は giotto-tda よりも高速です。これは NumPy のベクトル化インデキシングを直接使用しているためです。


機能比較

機能 delay-embedding giotto-tda
単変量埋め込み
多変量埋め込み ❌ (単変量のみ)
逆変換
最適遅延 (AMI) ✅ (内部)
最適次元 (FNN) ✅ (内部)
依存関係 NumPy のみ (sklearn はオプション) NumPy, scikit-learn, giotto-ph, etc.
scikit-learn 互換 API ✅ (オプション依存)
自動パラメータ選択 ("auto") ✅ (parameters_type="search")

delay-embedding の利点

  1. 多変量時系列のネイティブサポート — giotto-tda は SingleTakensEmbedding が単変量のみ対応。本ライブラリは (T, d) 形式の多次元入力をそのまま処理可能
  2. 逆変換 — 埋め込み行列から元の時系列を復元可能(平均化による近似)
  3. 軽量 — コア依存関係が NumPy のみ。scikit-learn 互換 API はオプション。giotto-tda は scikit-learn, giotto-ph など多数の依存パッケージが必須
  4. 高速 — NumPy のファンシーインデキシングによる効率的な実装
  5. 自動最適化dimension="auto", delay="auto" でデータから最適パラメータを自動推定(AMI + FNN)

giotto-tda の利点

  1. トポロジカルデータ解析 — persistent homology など TDA のエコシステムと連携
  2. 成熟したエコシステム — 大規模コミュニティとドキュメント

Clone this wiki locally