如何设置Keras TimeseriesGenerator来预测下一个值?

如何设置Keras TimeseriesGenerator来预测下一个值?,keras,Keras,目前,我使用Keras的TimeseriesGenerator编写了以下代码: TimeseriesGenerator(train, prediction, length=TIME_STEPS, batch_size=1) 目前,这会将预测值向后移动一个值,因此t的列车数据的输出将为t+1。这是有道理的,但我想预测t+2,因此t的训练数据将有t+2的输出 有没有办法使用TimeseriesGenerator来实现这一点?最快的解决方案是将预测值偏移1,即: TimeseriesGenera

目前,我使用Keras的
TimeseriesGenerator
编写了以下代码:

TimeseriesGenerator(train, prediction, length=TIME_STEPS, batch_size=1)  
目前,这会将预测值向后移动一个值,因此
t
的列车数据的输出将为
t+1
。这是有道理的,但我想预测t+2,因此
t
的训练数据将有
t+2
的输出


有没有办法使用TimeseriesGenerator来实现这一点?

最快的解决方案是将预测值偏移1,即:

TimeseriesGenerator(train[:-1], prediction[1:], length=TIME_STEPS, batch_size=1) 
请注意,您必须修剪列车集,以便两个数据集具有相同的长度

您还可以使用
timeseries\u dataset\u from\u array
功能,在该功能中,您可以根据需要对齐数据和目标,如您在以下内容中所读:

数据:包含连续数据点的Numpy数组或渴望张量 (时间步长)。轴0应为时间维度

目标: 与数据中的时间步长相对应的目标。它应该有相同的长度 作为数据。目标[i]应该是对应于窗口的目标 从索引i开始(参见下面的示例2)。如果不通过,则不通过 具有目标数据(在这种情况下,数据集将只生成输入 数据)

因此,在您的情况下,应该是这样的:

tf.keras.preprocessing.timeseries_dataset_from_array(
    train[:-TIME_STEPS-2],
    prediction[TIME_STEPS+2:],
    length=TIME_STEPS, 
    batch_size=1
)

最快的解决方案是将预测值偏移1,即:

TimeseriesGenerator(train[:-1], prediction[1:], length=TIME_STEPS, batch_size=1) 
请注意,您必须修剪列车集,以便两个数据集具有相同的长度

您还可以使用
timeseries\u dataset\u from\u array
功能,在该功能中,您可以根据需要对齐数据和目标,如您在以下内容中所读:

数据:包含连续数据点的Numpy数组或渴望张量 (时间步长)。轴0应为时间维度

目标: 与数据中的时间步长相对应的目标。它应该有相同的长度 作为数据。目标[i]应该是对应于窗口的目标 从索引i开始(参见下面的示例2)。如果不通过,则不通过 具有目标数据(在这种情况下,数据集将只生成输入 数据)

因此,在您的情况下,应该是这样的:

tf.keras.preprocessing.timeseries_dataset_from_array(
    train[:-TIME_STEPS-2],
    prediction[TIME_STEPS+2:],
    length=TIME_STEPS, 
    batch_size=1
)