如何对具有多个特征的时间序列数据进行切片以获取包含[train + test + prediction]的连续图?

时间:2019-05-23 14:36:40

标签: python machine-learning scikit-learn time-series cross-validation

我的格式为dataset,它看起来像矩阵[NxM],其中N = 40个周期总数(时间戳),M = 1440个像素。对于每个周期,我都有1440个像素值,对应于1440个像素。我使用了不同的模型来基于过去的10个周期来预测未来周期的像素值。 img

问题是在训练NN之后,我无法获得正确的连续绘图,这很可能是由于我通过train_test_split使用过但但从未被TimeSeriesSplit尝试过的不良数据拆分技术,如下所示:

trainX, testX, trainY, testY = train_test_split(trainX,trainY, test_size=0.2 , shuffle=False) 

第一个问题正在考虑我使用了shuffle=False,并希望将数据中的中的0.2视为测试数据,我可以正确地绘制它们,但是我做不到因为: 1)不幸的是,由于历史记录功能def create_dataset()会检查过去的10个周期以预测未来的周期,因此我错过了10个周期。如您所见:

def create_dataset(dataset,data_train,look_back=1):
    dataX,dataY = [],[]
    print("Len:",len(dataset)-look_back-1)

    for i in range(len(dataset)-look_back-1):
        a = dataset[i:(i+look_back), :]
        dataX.append(a)
        dataY.append(data_train[i + look_back,  :])
    return np.array(dataX), np.array(dataY)

look_back = 10
trainX,trainY = create_dataset(data_train,Y_train, look_back=look_back)

2)我也无法访问被视为测试数据的循环数,因此当我绘制时,循环数从0开始!而不是从火车数据的结束周期继续! img

在正确的数据切片之后,我的预期结果是使我捕捉到了以下连续绘图,该连续绘图是我在Windows 7中通过绘画手动绘制的: img

任何建议将不胜感激。

0 个答案:

没有答案