時系列データ分割【TimeSeriesSplit】

時系列データを対象に予測モデルを構築する場合、過去のデータを使って学習し、未来のデータを使って評価するという順序の時系列になっていなければなりません。

※過去のデータを使って、未来を評価したとき、過剰に予測精度が高く評価されてしまう場合。検証が正しく行われていないことを意味する。
→時系列データは慎重に扱わなければならない。


画像1


<手順①>(scikit-learnの中からTimeSeriesSplitというモジュールをインポート)

【TimeSeriesSplit()の引数】
・引数n_split: データの分割数、デフォルトは5
In [1]: # ライブラリのインポート
       import numpy as np
       from sklearn.model_selection import TimeSeriesSplit

       X = np.array([[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]])
       y = np.array([1, 2, 3, 4, 5, 6])

       tscv = TimeSeriesSplit(n_splits=5)
       for train_index, test_index in tscv.split(X):
           print("TRAIN:", train_index, "TEST:", test_index)

Out[1]: TRAIN: [0] TEST: [1]
       TRAIN: [0 1] TEST: [2]
       TRAIN: [0 1 2] TEST: [3]
       TRAIN: [0 1 2 3] TEST: [4]
       TRAIN: [0 1 2 3 4] TEST: [5]



この記事が気に入ったらサポートをしてみませんか?