時系列予測の性能検証#

Back-testing#

同じデータセットで訓練と評価を行うこと(train error)

性能を過大評価しがち

Walk forward testing#

test setはtrain setより新しい時間軸のデータを使う。

Scikit-learnのTimeSeriesSplitみたいなやつ。

data_period = [1, 2, 3, 4, 5, 6]

Fold 0:
  Train: index=[0]
  Test:  index=[1]
Fold 1:
  Train: index=[0 1]
  Test:  index=[2]
Fold 2:
  Train: index=[0 1 2]
  Test:  index=[3]
Fold 3:
  Train: index=[0 1 2 3]
  Test:  index=[4]
Fold 4:
  Train: index=[0 1 2 3 4]
  Test:  index=[5]

pros:

  • back-testingのような過大評価をする可能性は低め

cons:

  • サンプル数が少なくなりがち

関連文献#

Combinatorial Purged Cross-Validation (CPCV)#

組み合わせパーシング交差検証(Combinatorial Purged Cross-Validation: CPCV)

  • \(_M C_K\)通りのtrainとtestの組み合わせにする

  • データセットの部分集合の数を\(M\)とすると、そのうち\(K\)個をtest setにする

pros:

  • metricsのサンプル数を増やせる

関連文献#

参考#