Python LSTM能处理异常密集的时间序列数据吗?

Python LSTM能处理异常密集的时间序列数据吗?,python,keras,deep-learning,time-series,lstm,Python,Keras,Deep Learning,Time Series,Lstm,我有50个时间序列,每个序列至少有500个数据点(有些序列有2000多个数据点)。所有时间序列的值都从1.089到0.886,因此您可以看到每个数据集的分辨率接近10e-4,即数据类似: 1.079299, 1.078809, 1.078479, 1.078389, 1.078362,... 以此类推,从所有50个时间序列的1.089下降到0.886 因此,我的问题是: LSTM能处理如此密集的数据吗 为了避免过度拟合,建议的年代数、每批时间步数、批次数、隐藏层数和每层神经元数是多少 我已经为此

我有50个时间序列,每个序列至少有500个数据点(有些序列有2000多个数据点)。所有时间序列的值都从1.089到0.886,因此您可以看到每个数据集的分辨率接近10e-4,即数据类似:
1.079299, 1.078809, 1.078479, 1.078389, 1.078362,... 以此类推,从所有50个时间序列的1.089下降到0.886

因此,我的问题是:

  • LSTM能处理如此密集的数据吗
  • 为了避免过度拟合,建议的年代数、每批时间步数、批次数、隐藏层数和每层神经元数是多少

  • 我已经为此苦苦挣扎了一个多星期,我找不到其他来源谈论这个具体案例,因此它也可以帮助其他人。

    这是一个好问题,我可以理解为什么你没有找到很多解释,因为有很多教程涉及一些基本概念和方面,不一定是定制问题

  • 你有50个时间序列。但是,每个时间序列的数据频率并不相同。如果要正确构造数据集,必须进行插值,以达到每个时间序列的相同采样数
  • LSTM可以处理如此密集的数据。它既可以是一个分类问题,也可以是一个回归问题,神经网络可以适应这种情况
  • 为了避免过拟合(LSTM很容易发生过拟合),需要考虑的第一个主要方面是隐藏层和每层的单元数。通常人们在默认情况下倾向于使用256-512,因为在处理大型数据集的自然语言处理中,它们是合适的。根据我的经验,对于简单的回归/分类问题,您不需要这么大的数字,这只会导致在较小的问题中过度拟合
  • 因此,考虑到(1)和(2),从具有32个单元的LSTM/GRU开始,然后是输出层。如果发现效果不好,请添加另一层(64前32秒),然后添加输出层


    诚然,每个批次的时间步长至关重要。这不能在这里确定,您必须手动迭代它的值,看看什么能产生最好的结果。我假设您通过滑动窗口方式创建数据集;考虑这个(窗口大小)也是一个超参数,在到达批次和划时代之前改变。

    非常感谢@ Timbus!我一直在寻找这样的解释!我没有考虑您的解决方案的第一点,因为我认为LSTM可能会适应它。我将牢记这些要点,并继续解决问题。再次感谢!不,有些参数需要固定。即使在序列到序列的过程中,我们假设初始输入长度可变,其动机是矩阵乘法需要以特定的大小执行,即不能将维度[5,1]的向量与维度[10,10]的矩阵相乘,需要通过填充将初始向量带到[10,1]。