tensorflow 时间序列示例并没有解决预测的核心问题,

2wnc66cl  于 4个月前  发布在  其他
关注(0)|答案(3)|浏览(90)

URL(s) with the issue:

https://www.tensorflow.org/tutorials/structured_data/time_series
请提供一个指向文档条目的链接,例如:
https://www.tensorflow.org/tutorials/structured_data/time_series

问题描述(需要改变的内容):

我得到了顺序数据以及获取下一步或多步的方法。但是,既然时间已经被转换为频率,为什么我们还需要再次记录等距事件?这违背了任何时间序列问题的目的。在给定的例子中,将时间转换为频率对模型的影响不大,因为这个序列是定时的,而不是周期内的任何值。记录之间的周期相等。我仍然不认为这是一个明确的时间序列示例。你可以把这看作是一个预测系列的例子,而不是定时序列预测的例子。

  1. 以下函数中似乎存在一些错误。为什么我们需要将Shuffle设置为TRUE?我认为时间序列是顺序的吗?
def make_dataset(self, data):
  data = np.array(data, dtype=np.float32)
  ds = tf.keras.preprocessing.timeseries_dataset_from_array(
      data=data,
      targets=None,
      sequence_length=self.total_window_size,
      sequence_stride=1,
      shuffle=True,
      batch_size=32,)
  ds = ds.map(self.split_window)
  return ds
  1. 此外,如何进行验证?我们是否也需要滑动窗口验证数据?
  2. 对于LSTM,我们真的需要滑动窗口吗?对于很多例子来说,这似乎会导致过拟合。
  3. 如果某些输入字段具有分类数据(而不是输出),那么这种方法可能不会表现得更好,尤其是如果我们使用嵌入层的话。
  4. 使用timeseries_dataset_from_array函数时,很难添加任何嵌入层。
  5. 时间序列涉及到大量的数据集,不幸的是,使用BatchNormalization会让人感到困惑,这是文档的问题。
  6. 在使用3DTensor的情况下,如何在第一个输入中进行特征工程层(例如与嵌入层混合)。
pkmbmrz7

pkmbmrz71#

并且我也不明白代码中make dataset函数里的这个部分。

data = np.array(data, dtype=np.float32)
    ds = tf.keras.preprocessing.timeseries_dataset_from_array(
        data=data,
        targets=None,
        sequence_length=self.total_window_size,
        sequence_stride=sequence_stride,
        shuffle=shuffle,
        batch_size=batch_size, )

如果我们必须在将数据输入到特征工程层之前保留来自数据框的数据类型,我们应该怎么做?

hlswsv35

hlswsv352#

  1. 下面的函数中似乎也存在一些错误。为什么我们需要将Shuffle设置为TRUE?我认为时间序列是顺序的吗?
def make_dataset(self, data):
  data = np.array(data, dtype=np.float32)
  ds = tf.keras.preprocessing.timeseries_dataset_from_array(
      data=data,
      targets=None,
      sequence_length=self.total_window_size,
      sequence_stride=1,
      shuffle=True,
      batch_size=32,)
  ds = ds.map(self.split_window)
  return ds
  1. 此外,如何进行验证?我们是否也需要滑动窗口来验证数据?
  2. 对于LSTM,我们真的需要滑动窗口吗?这似乎会导致很多例子过拟合。
  3. 如果某些输入字段具有分类数据(而不是输出),那么这种方法可能不会表现得更好,尤其是当我们使用嵌入层时。
  4. 使用timeseries_dataset_from_array函数时,很难添加任何嵌入层。
  5. 时间序列涉及大量数据,不幸的是,使用BatchNormalization会让人感到困惑,这要归咎于文档。
  6. 如何在第一个输入中使用3DTensor进行特征工程层?
m1m5dgzv

m1m5dgzv3#

你好,
感谢你打开这个问题。由于这个问题已经开放了很长时间,这个问题的代码/调试信息可能与当前代码库的状态不相关。
Tensorflow团队正在不断通过修复错误和添加新功能来改进框架。我们建议你尝试使用最新的TensorFlow version 和最新的兼容硬件配置,这可能会解决该问题。如果你仍然遇到问题,请创建一个新的GitHub问题,附上你的最新发现以及所有有助于我们调查的调试信息。
请按照 release notes 了解Tensorflow空间中最新发展的动态。

相关问题