python - 如何对具有多特征的时间序列数据进行切片以获得连续图包含[训练+测试+预测]?
问题描述
我有格式化的数据集,它看起来像一个矩阵 [NxM],其中 N = 40 总周期数(时间戳)和 M = 1440 像素。对于每个周期,我有 1440 个像素值对应于 1440 个像素。我使用不同的模型根据过去 10 个周期预测未来周期的像素值。
问题是我在训练 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)不幸的是,我错过了 10 个周期,因为历史功能def create_dataset()
检查过去的 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 开始!而不是从火车数据的结束周期继续!
我在正确的数据切片后的预期结果是 cen 导致我捕捉到我在 Windows 7 中手动绘制的连续图:
任何建议将不胜感激。
解决方案
推荐阅读
- sql - 在 rails activerecord 查询中计算新列
- javascript - 带有工具提示的平行坐标
- excel - 使用转置快速导出到 Excel
- jenkins - 以更快的间隔让 Jenkins Ping 节点
- mysql - SQL - 使用嵌套查询计数仍然很快吗?
- python - 如何使用 python selenium 获取浏览器网络日志
- tensorflow - 尝试在 anaconda 环境中使用 pip 安装软件包时出现代理连接错误
- javascript - 在yii2中单击按钮时如何将数据从一个表保存到另一个表?
- react-apollo - 使用 Apollo 客户端查询从异步库中获取数据
- cordova - 每小时安排新的本地通知