【发布时间】:2020-10-27 20:21:21
【问题描述】:
我的气象数据如下所示:
DateIdx winddir windspeed hum press temp
2017-04-17 00:00:00 0.369397 0.155039 0.386792 0.196721 0.238889
2017-04-17 00:15:00 0.363214 0.147287 0.429245 0.196721 0.233333
2017-04-17 00:30:00 0.357032 0.139535 0.471698 0.196721 0.227778
2017-04-17 00:45:00 0.323029 0.127907 0.429245 0.204918 0.219444
2017-04-17 01:00:00 0.347759 0.116279 0.386792 0.213115 0.211111
2017-04-17 01:15:00 0.346213 0.127907 0.476415 0.204918 0.169444
2017-04-17 01:30:00 0.259660 0.139535 0.566038 0.196721 0.127778
2017-04-17 01:45:00 0.205564 0.073643 0.523585 0.172131 0.091667
2017-04-17 02:00:00 0.157650 0.007752 0.481132 0.147541 0.055556
2017-04-17 02:15:00 0.122101 0.003876 0.476415 0.122951 0.091667
我的目标:使用 keras timeseriesgenerator (from tensorflow.keras.preprocessing.sequence import TimeseriesGenerator) 一次训练和预测多个数据点(多行),例如不做
[input X] | [targets y]
[dp1, dp2, dp3, dp4, dp5] | [dp6]
[dp2, dp3, dp4, dp5, dp6] | [dp7]
[dp3, dp4, dp5, dp6, dp7] | [dp8]
...
但要做
[input X] | [targets y]
[dp1, dp2, dp3, dp4, dp5] | [dp6, dp7, dp8]
[dp2, dp3, dp4, dp5, dp6] | [dp7, dp8, dp9]
[dp3, dp4, dp5, dp6, dp7] | [dp8, dp9, dp10]
...
我可以通过
实现顶级预测generator = TimeseriesGenerator(
X,
X,
length=5,
sampling_rate=1,
stride=1,
start_index=0,
end_index=None,
shuffle=False,
reverse=False,
batch_size=1,
)
,但我还没有弄清楚如何为第二种预测调整生成器选项。
有没有一种简单的方法可以使用 timeseriesgenerator 实现所需的 3 个数据点的预测窗口?如果没有,您能否建议我一些代码来合并我的预测y 以完成任务?天呐
【问题讨论】:
-
这里有点不清楚你想要什么。您的模型是否需要 y 个目标和三个条目进行训练,或者您的模型是否已经训练并且您只想在三个不同的窗口上调用 predict?如果是第一个,则需要更改生成器的目标输入以适应模型的输出形状。您能否在问题中包含这些详细信息?
-
@JuanCarlosRamirez 我确认我想要你提到的第一个案例 - 在这两个案例中训练并随后预测目标
[dp_N, dp_N+1, dp_N+2]在一个步骤中。我知道我可以在没有TimeseriesGenerator的情况下实现这一点,如果我使用附加代码创建自己一个合适的目标数组y。但是我想知道我是否可以使用TimeseriesGenerator来完成该任务,因为它非常方便!你有什么建议或者简单的预处理代码来创建数组y?
标签: python tensorflow keras time-series recurrent-neural-network