こんにちは。カルークです。今回は、時系列データ予測を行う際の訓練データとテストデータの分割方法について勉強したので、備忘録としてメモを残します。(手法としては他にも色々ありますが、よく使いそうな主要なものだけをまとめました)
はじめに
時系列データの予測において、適切なデータの分割方法は非常に重要です。これは、将来の値を予測するために過去のデータを使用するため、データが時系列の順序に依存しているからです。以下に、時系列データの訓練データとテストデータの分割方法について詳しく説明します。
主なデータ分割方法について
時系列データ予測を行う時のポイントとして、データの順序を変えない事が重要です。(ランダムにデータ分割しない)
ホールドアウト法 (Hold-out Method)
一番シンプルで簡単なのが、ホールドアウト法です。ホールドアウト法では、データを一定割合で分割します。例えば、全データの70%を訓練データ、30%をテストデータとするなどです。(この割合はデータによって変えて下さい)
ステップとして、以下のような流れになります。
- データを時系列の順序に保ったまま分割します。
- 訓練データでモデルを訓練します。
- テストデータでモデルの性能を評価します。
イメージ:
データセット: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
訓練データ: [1, 2, 3, 4, 5, 6, 7]
テストデータ: [8, 9, 10]
メリット:
- シンプル: 実装が簡単で理解しやすい。
- 迅速: 分割と評価が一度だけ行われるため、計算負荷が軽い。
デメリット:
- バイアスのリスク: 1回の分割だけでは、分割の方法によってバイアスがかかる可能性がある。
時系列クロスバリデーション (Time Series Cross-Validation)
通常のCV(クロスバリデーション)を時系列データに適応させたのが、時系列クロスバリデーション(Time Series Cross-Validation)です。ここでは、時間を考慮してデータを分割し、モデルを複数回訓練・評価します。
ポイントとして、テストデータは最新の期間を使うことです。なぜなら、訓練データよりもテストデータが古いと、それは訓練データにテストデータの情報が含まれる、つまりチートをしていることになるからです。(データリーケージ、データ漏洩とも呼ばれます)
具体的なやり方としては、以下の2つをまとめます。
スライディングウィンドウ法 (Sliding Window Method)
ウィンドウを一定のサイズでスライドさせながら、訓練とテストを繰り返します。
以下のようなイメージです。
データセット: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Fold 1:
訓練データ: [1, 2, 3, 4]
テストデータ: [5]
Fold 2:
訓練データ: [2, 3, 4, 5]
テストデータ: [6]
Fold 3:
訓練データ: [3, 4, 5, 6]
テストデータ: [7]
Fold 4:
訓練データ: [4, 5, 6, 7]
テストデータ: [8]
Fold 5:
訓練データ: [5, 6, 7, 8]
テストデータ: [9]
Fold 6:
訓練データ: [6, 7, 8, 9]
テストデータ: [10]
メリット:
- 汎用性: さまざまなデータセットに対して適用可能。
- より正確な評価: 複数の分割で評価するため、より信頼性の高い性能評価が可能。
デメリット:
- 計算コスト: 複数回の訓練と評価を行うため、計算負荷が高い。
- 実装の複雑さ: 通常のクロスバリデーションよりも実装が複雑。
ロールフォワード法 (Rolling Forecast Origin Method)
訓練データのサイズを徐々に増やしながら(蓄積させながら)、テストデータのサイズを固定して評価します。
以下のようなイメージです。
データセット: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Fold 1:
訓練データ: [1, 2, 3]
テストデータ: [4]
Fold 2:
訓練データ: [1, 2, 3, 4]
テストデータ: [5]
Fold 3:
訓練データ: [1, 2, 3, 4, 5]
テストデータ: [6]
メリット:
ロールフォワード法よりも訓練データの規模がより大きいので、より信頼性の高い予測が可能
デメリット:
ロールフォワード法に比べて、毎回データセットが大きくなるため、計算負荷が増大
まとめ
今回は、時系列データの予測を行う際の訓練データとテストデータの分割方法についてまとめました。
時系列データの分割方法は、データの特性や予測モデルの要件に応じて選択する必要があります。時系列の順序を保ちながら、ホールドアウト法、時系列クロスバリデーション、ロールフォワード法などを活用することで、モデルの性能を正確に評価することができます。