如何为 NN 构建时间序列的验证集?

数据挖掘 Python 喀拉斯 时间序列 训练 交叉验证
2022-02-23 17:25:36

我想用验证集训练我的模型。由于数据是时间序列,我必须使用timeseriessplit

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)    
print(tscv)      
TimeSeriesSplit(max_train_size=None, n_splits=5)    
for train_index, test_index in tscv.split(X):    
...    print("TRAIN:", train_index, "TEST:", test_index)    
...    X_train, X_test = X[train_index], X[test_index]    
...    y_train, y_test = y[train_index], y[test_index]    
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]

使用这种方法,我获得了一个训练集和测试集。但是我现在如何生成验证集呢?

1个回答

我也是这个话题的新手,但我认为这个想法是创建一个训练/测试集,然后使用训练集并将其再次拆分为 2 组(主要称为训练集和开发集),例如使用 KFold-CV。在训练集上训练您的模型并使用开发集对其进行改进。然后取最终模型并将其用于整个训练集。

我认为这张照片给你一个更清晰的想法。 在此处输入图像描述