時系列データ予測における訓練データとテストデータ分割方法について

機械学習
スポンサーリンク

こんにちは。カルークです。今回は、時系列データ予測を行う際の訓練データとテストデータの分割方法について勉強したので、備忘録としてメモを残します。(手法としては他にも色々ありますが、よく使いそうな主要なものだけをまとめました)

スポンサーリンク

はじめに

時系列データの予測において、適切なデータの分割方法は非常に重要です。これは、将来の値を予測するために過去のデータを使用するため、データが時系列の順序に依存しているからです。以下に、時系列データの訓練データとテストデータの分割方法について詳しく説明します。

主なデータ分割方法について

時系列データ予測を行う時のポイントとして、データの順序を変えない事が重要です。(ランダムにデータ分割しない)

ホールドアウト法 (Hold-out Method)

一番シンプルで簡単なのが、ホールドアウト法です。ホールドアウト法では、データを一定割合で分割します。例えば、全データの70%を訓練データ、30%をテストデータとするなどです。(この割合はデータによって変えて下さい)

ステップとして、以下のような流れになります。

  1. データを時系列の順序に保ったまま分割します。
  2. 訓練データでモデルを訓練します。
  3. テストデータでモデルの性能を評価します。

イメージ:

データセット: [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]
メリット:

ロールフォワード法よりも訓練データの規模がより大きいので、より信頼性の高い予測が可能

デメリット:

ロールフォワード法に比べて、毎回データセットが大きくなるため、計算負荷が増大

まとめ

今回は、時系列データの予測を行う際の訓練データとテストデータの分割方法についてまとめました。

時系列データの分割方法は、データの特性や予測モデルの要件に応じて選択する必要があります。時系列の順序を保ちながら、ホールドアウト法、時系列クロスバリデーション、ロールフォワード法などを活用することで、モデルの性能を正確に評価することができます。

タイトルとURLをコピーしました