我正在使用Keras进行时间序列预测,并且我试图了解有关时间序列预测的官方网站上的教程,您可以在这里找到(https://keras.io/examples/timeseries/timeseries_天气_预测/)。
它们使用一个名为keras.preprocessing.timeseries_dataset_from_array的keras方法,它具有以下参数(这里是一个文档https://www.tensorflow.org/api_docs/python/tf/keras/预处理/时序_数据集_从…_数组):
dataset_train = keras.preprocessing.timeseries_dataset_from_array(
x_train,
y_train,
sequence_length=sequence_length,
sampling_rate=step,
batch_size=batch_size,
)所以我的问题是,序列长度和批次大小之间有什么区别。我认为序列是滑动窗口的大小(x特征和一个目标y值)。但是批次的大小是多少?不幸的是,我无法查看此方法的输出,因为
print(dataset_train) or
print(dataset_train.head()) 不向我展示数据,我也不知道其他函数如何查看该方法的输出。
你们中有没有人对这种方法有经验,或者对顺序和批次一般都有经验?我很感谢你的每一条评论。
发布于 2021-01-12 14:21:10
让我们取一个TS数据= 1、2、3、4、5、7、8、9、10
用这些参数调用函数
sequence_length=5, sampling_rate=1, sequence_stride=1, shuffle=False, batch_size=2
shuffle, batch_size在TS数据创建中没有任何作用。当您在返回的数据集上迭代时,它将生效。
在这种情况下,我们将有以下数据点,
1,2,3,4,5
2、3、4、5、6
3、4、5、6、7
4、5、6、7、8
5、6、7、8、9
6、7、8、9、10
batch_size
当您在此数据集上进行迭代时,您将在每次迭代中收到2条记录。
如果是shuffle=True,记录将在批处理之前被洗牌。
for batch in dataset:
inputs, targets = batch在上面的片段中,输入将是一批记录,而不仅仅是一条记录。如果需要的话,您可以使用batch_size=1。
targets
与数据中的时间步骤相对应的目标。它应该与数据具有相同的长度。目标我应该是与从索引i开始的窗口相对应的目标(参见下面的示例2)。如果没有目标数据,则不传递任何数据(在本例中,数据集只生成输入数据)
这是一个通用的函数。
它不是根据某种逻辑,即自回归方法来确定目标。它期望目标将被提供,否则,它只会返回预测器。
https://datascience.stackexchange.com/questions/86857
复制相似问题