オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【金融時系列解析】分野一覧 #まとめ編

Index

金融時系列解析

時系列解析にはない、金融特有の分野.

前処理

特徴量サンプリング

非構造データから構造化されたデータに整形した後、
すべての時系列データを同等に機械学習等のアルゴリズムに入力するのではなく、
特徴のある部分のみをサンプリングして利用する.

ラベリング

アルゴリズム

深層学習手法 / DeepLearning

精度評価

バックテスト / Back Test

タスク

テクニカル分析

テクニカル分析は、これまでの価格の動きをもとにして、 現在の価格は高いのか安いのか、将来の価格は上がるのか下がるのか、 今は買い時なのか売り時なのか、ということを分析する手法.

株価予測

ポートフォリオ最適化問題

参考

【機械学習】Window-Base GBRT

Index

Window-Base GBRT

Window-Base Gradient Boosting Regression Tree



時系列解析 / 予測における研究.

DeepLearning を利用したアルゴリズムとの比較研究.

定式化

変数定義

実数  R の部分集合  X,\ Y\ \subseteq\ R とする.

 X に対して、

 X^{*}\ :=\ \displaystyle \bigcup_{T\ \in\ N}\ X^{T}


とする.



 x\ \in\ X^{T}\ \subseteq\ X^{*} に対して、

 |x|\ :=\ T ( x の長さ)


x\ =\ \begin{pmatrix}a_1 \\ a_2 \\ \vdots \\ x_T \end{pmatrix}


とする.

 T は、時系列データの長さ.

時系列予測

説明変数と目的変数を以下の様に定義.


X\ :=\ (R^{M}\ \times\ R^{L}) \\
Y\ :=\ R^{h\ \times\ L}


M,\ L,\ h\ \in N


  •  L : 目的変数の 次元数 / チャネル数
  •  M : 説明変数とは異なる入力項目 Covariates / 共変量 の数



データセット  D は、

 D\ =\ X\ \times\ Y


と定義する.



Loss Function は、

 l\ :\ Y\ \times\ Y\ \rightarrow\ R



予測関数 は、

 \hat{y}\ :\ X\ \rightarrow\ Y



以下の目的関数を最適化する予測関数を探索する.

 \displaystyle \min\ E[\ l\ (\ y^{'},\ \hat{y} (x)\ )]


損失関数の平均を最小化した予測関数を見つけたい.

2 つケース

ケース 1

チャネルが 1 つしかなく (単変量)、共変量が考慮さていない.

 L\ =\ 1,\ M\ =\ 0

ケース 2

多変量の時系列解析.

 L\ =\ 1,\ M\ >\ 0

Feature Engineering

GBRT モデルは、テーブルデータなどには有効.

しかし、時系列データへの適用となると、ある区間における関連性についての情報を柔軟に利用する手段をを失う.

そのために、時系列データを Windowed Input へ変換する.

ここでは、window size  \omega\ \in\ N としている.

2D to 1D

2 次元の時系列データ / インスタンス を GBRT へ入力可能な形式 1D へ平滑化する.

Multi Output Wrapper

変換したベクトルを、複数出力に対応した GBRT へ入力する.



GBRT は、複数出力に対応していないため、Single Target Method などを利用する.

この方法は、予測器の数を出力するサイズに拡張する.

また、この手法では、予測範囲の目的変数が個別に予測されるため、各予測モデルが、 各目的変数の情報を得られないという性質がある.

これは、将来のある範囲予測に対して、影響を及ぼし合わないという利点でもある.

参考

  • Do We Really Need Deep Learning Models for Time Series Forecasting?
    • [2021]
    • 2 Research Design
    • 3 Problem Formulation
    • arxiv.org

Web サイト

【数理最適化】割当・マッチング問題 / Assignment・Matching

Index

割当・マッチング問題 / Assignment・Matching

離散最適化の問題のひとつ.

割当・マッチング問題とは、ある集合の各要素について、 それぞれ別の集合のどの要素に割り当てると、様々な制約条件を満たしつつ、 最もよい割当を行うことができるのかを決定する問題のこと.

2次割当問題

2次割当問題は、対象物と配置場所などの同数の割当先が与えられているとき、 割当先間の輸送量と距離の積の総和を最小化する問題.

2部マッチング

問題をグラフ理論の観点から見たとき、2部グラフになっている場合の割当問題.

応用アルゴリズム

参考

Web サイト

  • ‪実世界で超頻出!二部マッチング (輸送問題、ネットワークフロー問題)の解法を総整理!‬

【深層学習】DETR #実装編 #02

Index

DETR

前置き

実装編 #01 では、Google Colab で物体検出と入力画像の注目箇所を出力した.

タスク

#02 では、API 化を行う.

環境構築

API フレームワーク

公式のソースコードでは、PyTorch が利用されていたので、Torch Serve を使ってみる.

Docker での環境構築

Docker 環境での構築を考える.

Torch Serve は、Docker Hub で公式の Docker Image を公開しているので、そちらを利用する.

docker pull pytorch/torchserve:0.6.0-cpu

DETR の install

DETR は torchhub での利用が可能なため、Torch Serve の Docker Image 内で Pytorch が利用できれば、問題ない.

しかし、いくつか必要なライブラリがあるので、pip で install する.

scipy



実行

handler の作成

mar file の作成

torch-model-archiver \
--model-name detr \
--version 1.0 \
--handler ./DETR_detection_handler.py

モデルの登録

mv detr.mar /home/model-server/model-store/
cd /home/model-server/

torchserve \
--start \
--model-store model-store \
--models my_tc=detr.mar \
--ncs

【深層学習】DDG-DA

Index

DDG-DA

Data Distribution Generation for Drift Adaptation

Streaming Data

Real Time な時系列データ / Time Series Data.

Streaming Data の分布は、予測できない方法で変化する.

Concept Drift

Concept-Driftとは、アウトプットデータとインプットデータの関係が、時間や外部影響によって変化すること.



この手法では、Concept Drift に対応するために、 データ分布の変換を予測し、予測モデルの性能を向上させる.

最初に、データ分布を予測するために、Predictor を学習する.

次に、学習した Predictor を利用して、Training Sample を生成する.

変数定義

登場人物紹介.

  •  Data^{(t)} : 時刻  t におけるデータ集合
    •  t : timestamp
    • ヒストリカルなデータ集合  Data^{(t-1)},\ \cdots,\ Data^{(1)}
    • 将来のデータ集合  Data^{(t-1)} を予測するのが、目的

  •  X\ =\ \{x^{(1)},\ \cdots,\ x^{(T)} \} : 時系列データ
    •  T : timestamp
    •  x^{(t)}\ \in\ R^{m} : データ  x^{(t)}は、 m 次元のベクトル
    •  x^{(t)}\ =\ \{x_{1},\ \cdots,\ x_{m}\} : データ  x^{(t)} の要素

  •  y\ =\ \{y^{(1)},\ \cdots,\ y^{(T)} \} : 時系列のラベルデータ

  •  Data_{test}^{(t)}\ =\ \{ (x^{(i)},\ y^{(i)}) \}_{i=t\ +\ 1}^{t\ +\ \tau}
    •  (x^{(t)},\ y^{(t)})\ \sim\ p_{t} (x,\ y)

  •  Data_{train}^{(t)}\ =\ \{ (x^{(i)},\ y^{(i)}) \}_{i=t\ -\ k}^{t\ -\ 1}





 \displaystyle \min_{f^{(t)},\ \cdots,\ f^{(t+\tau)}} \displaystyle \sum_{i=t}^{t+\tau}\ loss\ (f^{(i)} (x^{(i)}),\ y^{(i)})


  •  f :  Data_{train} によって学習された予測関数
  •  loss : 損失関数

アルゴリズム



 task^{(t)}\ =\ (D^{(t)}_{train},\ D^{(t)}_{test})

参考

  • DDG-DA: Data Distribution Generation for Predictable Concept Drift Adaptation
    • [2022]
    • Abstract
    • 1 Introduction
    • 2 Background and Related Work
      • 2.1 Streaming Data and Concept Drift
      • 2.2 Related Work
    • 3 Method Design
      • 3.1 Overall Design
      • 3.2 Model Design and Learning Process
    • arxiv.org

Web サイト

【金融時系列解析】深層学習手法 #まとめ編

Index

深層学習手法

金融時系列解析における深層学習を用いた手法をまとめる.

Financial Time Series Prediction / Stock Prediction

DP-LSTM / 2019

  • DP-LSTM: Differential Privacy-inspired LSTM for Stock Prediction Using Financial News

Price Graph / 2021

  • Price graphs: Utilizing the structural information of financial time series for stock prediction

DDG-DA / 2022

参考

【深層学習】Autoformer

Index

Autoformer

参考

  • Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting