首页  >  文章  >  后端开发  >  如何重塑时间序列数据以与 Keras LSTM 一起使用,有状态 LSTM 以及参数'时间步长”和'特征”的意义是什么?

如何重塑时间序列数据以与 Keras LSTM 一起使用,有状态 LSTM 以及参数'时间步长”和'特征”的意义是什么?

Patricia Arquette
Patricia Arquette原创
2024-11-24 05:03:08371浏览

How do I reshape time series data for use with Keras LSTMs, and what is the significance of stateful LSTMs and the parameters

了解 Keras LSTM

重塑数据以进行时间序列分析

在 Keras 中,时间序列数据通常被重塑为三维数组,其中维度[样本、时间步长、特征]。此格式对于 LSTM 层是必需的,LSTM 层会随着时间的推移按顺序处理数据。

  • 样本:数据集中的序列数
  • 时间步长: 每个序列的长度(次数步骤)
  • 特征:每个时间步的输入特征数量

例如,如果您有 5 个训练序列,每个训练序列有 10 个时间步和 1 个时间步功能,您的数据将被重塑为 (5, 10, 1)。

有状态LSTM

有状态 LSTM 允许模型在批次之间维护其内部状态。这意味着模型在处理一个批次后会记住隐藏状态,并将它们用作下一个批次的输入。这在处理顺序数据时特别有用,其中当前输出取决于先前的输入。

在您提供的 Keras 代码中,stateful=True 设置为 True,表示 LSTM 是有状态的。 batch_size 设置为 1,这意味着模型将一次处理一个序列。该模型将保留训练运行之间的细胞内存值,使其能够学习数据中的长期依赖性。

时间步长和特征

  • 时间步长: 输入数据中的时间步数表示所考虑的序列的长度。图中,粉色框代表序列的长度。
  • 特征:每个时间步都有许多输入特征,这些特征是 LSTM 使用的值。在图像中,特征的数量是每个粉红色框中的绿色框的数量。

如果您正在处理多元时间序列,其中每个时间步长都有多个输入特征(例如股票价格) ),特征数量将大于 1。

理解 LSTM 架构

您提供的 Keras LSTM 实现有一个 LSTM 层,有 4 个单元,返回序列为 True。这意味着 LSTM 将为每个输入时间步输出长度为 4 的序列。

然后使用均方误差损失函数和 Adam 优化器编译模型。训练循环迭代 100 个 epoch,批量大小为 1。

需要注意的是,该 LSTM 模型旨在根据之前的时间步预测下一个时间步。但是,可以通过更改输出层和损失函数来修改模型以用于其他任务,例如序列分类或语言建模。

以上是如何重塑时间序列数据以与 Keras LSTM 一起使用,有状态 LSTM 以及参数'时间步长”和'特征”的意义是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn