tensorflow - 与回归相比,使用 LSTM 进行时间序列预测有什么优势?
问题描述
一般来说,在神经网络中,哪个模型应该在时间序列之间产生更好、更准确的输出?
解决方案
正如您正确提到的,我们可以对时间序列数据使用线性回归,只要:
- 包含滞后项作为回归量不会产生共线性问题。
- 回归变量和解释变量都是平稳的。
- 您的错误彼此不相关。
- 其他线性回归假设适用。
没有自相关是线性回归中最重要的假设。如果存在自相关,则后果如下:
- 偏差:您的“最佳拟合线”可能会偏离,因为滞后误差的影响会将其拉离“真实线”。
- 不一致:鉴于上述情况,您的样本估计量不太可能收敛到总体参数。
- 低效率:虽然理论上是可能的,但如果残差是自相关的,则它们不太可能是同方差的。因此,您的置信区间和假设检验将不可靠。
而长短期记忆神经网络是一种循环神经网络(RNN)。RNN 使用先前的时间事件来通知后面的事件。例如,为了对电影中正在发生的事件进行分类,模型需要使用有关先前事件的信息。如果问题只需要最近的信息来执行当前任务,RNN 就会很好地工作。如果问题需要长期依赖,RNN 将难以对其建模。LSTM 旨在学习长期依赖关系。它会长时间记住这些信息。
专注于第一个序列。该模型在索引 0 处获取时间条的特征,并尝试在索引 1 处预测时间条的目标。然后在索引 1 处获取时间条的特征,并尝试预测时间条的目标在索引 2 处等。第二序列的特征从第一序列的特征移动了 1 个时间柱,第三序列的特征从第二序列移动了 1 时间柱,等等。通过这个过程,我们得到了许多更短的序列由单个时间条移动。
推荐阅读
- python - 通过特定字段比较 pyspark Python 中加入之前的 2 个字段
- python - Python中是否有类似于Perl中的“想要”的东西
- maven - 在容器中创建本机时出现 Quarkus 错误:quarkus 未知生命周期阶段
- case - 比较具有相同值的行(SQL Server 管理工作室)
- xml - 无法添加与号 (&) 作为 xmlstarlet 中的属性值
- c# - DateTime.ParseExact 无法来回转换 DateTime
- forms - 通过修改表单来修改另一个电子表格中的值
- python - 根据键将项目从字典复制到另一个字典
- python - 使用 boto3 公开文件夹中的所有 s3 文件
- c# - 在 http GET EntityFramework 中显示外键 json 对象