MCPcopy Index your code
hub / github.com/TakuyaShintate/tsts

github.com/TakuyaShintate/tsts @v1.1.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1.3 ↗ · + Follow
1,030 symbols 3,321 edges 136 files 110 documented · 11% updated 3y agov1.1.3 · 2022-05-20★ 33
What it actually does AI analysis from the code graph — generated when you open this
loading…
README


pypilicense

English/日本語

(ドキュメンテーション)

❓ このプロジェクトについて

最新の時系列予測手法を提供するオープンソースプロジェクトです。

自己回帰(AR)モデルなどと組み合わせてモデルを構築するなど、より柔軟なモデルの構築が可能です。また、モデルの他にData Augmentationや損失関数、オプティマイザーに関しても最新のモジュールを提供しています。

⛏ インストール方法

pip install tsts

または以下のコマンドで開発中のバージョンをインストールしてください。

pip install git+https://github.com/takuyashintate/tsts

⚡️ コンフィグサンプル

各モデルの使用例に関しては、サンプルを参照してください。

🚀 使用方法

あるベンチマークでモデルの性能を測定したい場合など、決められたテストデータに対して予測を行いたい場合は"tools/train.py & tools/test.pyを使用する場合"を、オンラインで予測を行いたい場合は"APIを使用する場合"を参照してください。

tools/train.py & tools/test.pyを使用する場合

✅ 少ないコードで学習 & 推論を行うことができます

1. 学習に使用するデータの準備

訓練データ(CSVファイル)とバリデーションデータ、テストデータを各々のディレクトリに保存してください。ディレクトリの名前は任意です。訓練・バリデーション・テストデータが複数存在する場合、それらを全て各々のディレクトリに保存してください。

2. コンフィグファイルを作成

学習時の設定を記述したコンフィグファイルを作成します。モデル、Data Augmentation、オプティマイザー、学習率スケジューラーなどを指定することができます。設定可能な項目についての詳細はドキュメンテーションを参照してください。

今回は簡単のため、最小限のコンフィグファイルを使用します。下の内容をmy_first_model.ymlとして保存します。ドキュメンテーションから対象のセクションをコピーすることで別のモデルや手法を使用できます。

# `my_first_model.yml`として保存してください
LOGGER:
  LOG_DIR: "my-first-model"

3. 学習

下のコマンドを実行して学習を始めます。いったん学習が始まると、2で指定したディレクトリ(my-first-model)にモデルのパラメータやログファイルが作成されます。ログファイルには損失値やメトリックの値が書き込まれます。

モデルなどと同様、損失関数やメトリックも変更可能です

--train-dir--valid-dirには訓練データとバリデーションデータを保存したディレクトリを指定してください。--in-feats--out-featsには入力変数の名前のリストと出力変数の名前のリストを指定してください。

ある出力変数に対し、入力変数と同じ時刻の値を予測したい場合があります(時刻t-n:tの入力変数の値に対し、時刻t-n:tの出力変数の値を予測したい場合)。そうした場合には--laggingオプションを追加してください。

python tools/train.py \
    --cfg-name my_first_model.yml \
    --train-dir <dir to contain training data> \
    --valid-dir <dir to contain validation data> \
    --in-feats <list of input feature names> \
    --out-feats <list of output feature names>

4. 学習後のモデルのテスト

学習が完了した後に下のコマンドを実行することで、テストデータに対する予測結果を得ることができます。予測結果と正解ラベル、それらの誤差が記録されたCSVファイルとそれらがプロットされた画像が--out-dirで指定されたディレクトリに保存されます。各テストデータに対して結果が保存されます。

python tools/test.py \
    --cfg-name my_first_model.yml \
    --train-dir <dir to contain training data> \
    --valid-dir <dir to contain validation data> \
    --test-dir <dir to contain test data> \
    --in-feats <list of input feature names> \
    --out-feats <list of output feature names> \
    --out-dir <result is saved in this directory>

APIを使用する場合

✅ 未来の値を予測するために使用できます

1~3. データの準備 ~ 学習

tools/train.py & tools/test.pyを使用する場合 と同様の手順です。

4. 学習後のモデルのテスト

学習済みのモデルを使用して任意の値で予測を行います。

入力値は(タイムステップ数, 変数の数)の形をしている必要があります

from tsts.apis import init_forecaster, run_forecaster
from tsts.utils import plot


(solver, X_scaler, y_scaler) = init_forecaster(
    cfg_name,  # config file (like "my_first_model.yml")
    train_dir,  # dir to contain training data
    in_feats,  # list of input feature names
    out_feats,  # list of output feature names
)
Z = run_forecaster(
    solver,
    X_scaler,
    y_scaler,
    X,  # torch.Tensor of (number of time steps, number of variables)
)
plot(Z)

Core symbols most depended-on inside this repo

apply
called by 173
tsts/transforms/erase.py
range
called by 51
docs/_static/underscore-1.13.1.js
jQuery
called by 44
docs/_static/jquery-3.5.1.js
$
called by 43
docs/_static/jquery.js
m
called by 41
docs/_static/jquery.js
S
called by 41
docs/_static/jquery.js
isFunction
called by 40
docs/_static/jquery-3.5.1.js
r
called by 35
docs/_static/javascripts/lunr/wordcut.js

Shape

Function 653
Method 305
Class 72

Languages

TypeScript59%
Python41%

Modules by API surface

docs/_static/underscore-1.13.1.js114 symbols
docs/_static/jquery-3.5.1.js112 symbols
docs/_static/jquery.js83 symbols
docs/_static/underscore.js72 symbols
tsts/models/informer.py68 symbols
docs/_static/javascripts/lunr/wordcut.js37 symbols
docs/_static/javascripts/lunr/lunr.tr.js34 symbols
tsts/solvers/forecaster.py33 symbols
docs/_static/js/modernizr.min.js27 symbols
tsts/solvers/solver.py24 symbols
tsts/models/scinet.py18 symbols
tsts/models/nbeats.py17 symbols

For agents

$ claude mcp add tsts \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact