使用 LSTM 进行预测
Posted
技术标签:
【中文标题】使用 LSTM 进行预测【英文标题】:Forecasting using LSTM 【发布时间】:2018-09-24 09:11:22 【问题描述】:如何使用长短期记忆 (LSTM) 根据历史数据集预测未来值 x(t+1)(样本外预测)。我阅读并尝试了许多使用 lstm 进行预测和预测的网络教程,但仍然离题很远。进行此预测的确切程序是什么?是否就像移动目标数组 (n) 步一样简单,其中 n 是未来预测的数量并进行预测操作?还是有其他技术? 请帮助或提出建议。
【问题讨论】:
【参考方案1】:你能提供你正在使用的框架吗?张量流?火炬?具体是哪些网络教程?
假设您要使用 tensorflow,您可以从其中之一复制和粘贴代码,测试它是否适用于提供的数据集,然后修改输入编码函数以适合您的数据集,然后在您的数据集上运行。
https://github.com/llSourcell/How-to-Predict-Stock-Prices-Easily-Demo(最佳)
https://github.com/sebastianheinz/stockprediction
https://github.com/talolard/MarketVectors/blob/master/preparedata.ipynb(你必须用 lstm 替换 fc 层,并调整输入)
一般程序是这样的(假设 tensorflow):
-
下载数据集
创建一个函数来批量加载数据
创建一个函数来对一批数据进行编码(标准化、其他转换)
创建 LSTM 层以接收一系列输入。
创建输出层(通常是全连接的)以获取最后的 lstm 状态并预测所需大小的输出。
创建一个 tf 会话将所有内容连接在一起,然后点击运行。
一些关于使用哪个网络的概念性问题:
多少输入对应多少输出 - 请参阅 Karpathy 撰写的优秀 http://cs231n.stanford.edu/slides/2016/winter1516_lecture10.pdf
您认为股票价格有多远,例如 t-100... t 或 t-10 ...t 可能决定隐藏层的大小。
您认为还有哪些其他信息与模型相关?股票A会影响股票B吗?在这种情况下,您可能有 2 个 lstms 将状态输出到您的全连接层...
【讨论】:
我正在使用TensorFlow框架,我在预测测试数据方面没有问题,您能告诉我如何预测未来值吗?即,如果我的数据集中有 3000 行,我将要预测行号 3001 处的值,它可以做到吗?我应用了这个教程:python36.com/predict-cryptocurrency-price-using-lstm 和这个:kaggle.com/jphoon/bitcoin-time-series-prediction-with-lstm 当然可以。我们需要知道 - 您的数据是什么样的?每行的列是什么 - 请在您的问题中发布此内容,因为它是 ***s 指南的一部分。然后,可能会修改网络的输入大小。在第二个链接中,输出是第 t+1 天给定天 t-5 到 t,因此可以更改为 300...这与您的问题有何不同? 我认为我没有得到预测操作的全貌。能否请您总结一下第二个教程中在执行完 model.fit() 操作后发生了什么?以上是关于使用 LSTM 进行预测的主要内容,如果未能解决你的问题,请参考以下文章