人工智能深度学习
LSTM全称长短期记忆人工神经网络(Long-ShortTermMemory),是对RNN的变种。举个例子,假设我们试着去预测“IgrewupinFrance…中间隔了好多好多字……Ispeakfluent__”下划线的词。我们拍脑瓜子想这个词应该是French。对于循环神经网络来说,当前的信息建议下一个词可能是一种语言的名字,但是如果需要弄清楚是什么语言,我们是需要离当前下划线位置很远的“France”这个词信息。相关信息和当前预测位置之间的间隔变得相当的大,在这个间隔不断增大时,RNN会丧失学习到连接如此远的信息的能力。 这个时候就需要LSTM登场了。在LSTM中,我们可以控制丢弃什么信息,存放什么信息。 具体的理论这里就不多说了,推荐一篇博文UnderstandingLSTMNetworks,里面有对LSTM详细的介绍,有网友作出的翻译请戳[译]理解LSTM网络
股票预测在对理论有理解的基础上,我们使用LSTM对股票每日最高价进行预测。在本例中,仅使用一维特征。 数据格式如下:
执行效果如下:
根据股票历史数据中的最低价、最高价、开盘价、收盘价、交易量、交易额、跌涨幅等因素,对下一日股票最高价进行预测。
实验用到的数据长这个样子:
label是标签y,也就是下一日的最高价。列C——I为输入特征。 本实例用前5800个数据做训练数据。
执行效果如下:
本设计实例参考了前辈的代码,但是有的代码拿到没法运行成功,经过改进这个版本可以运行,特别感谢 Scorpio_Lu
lyshello123在他的两篇伯克基础上修改了部分代码,
Tensorflow实例:利用LSTM预测股票每日最高价(一)
Tensorflow实例:利用LSTM预测股票每日最高价(二)
在以上两篇博文中,博主介绍了RNN和LSTM,并使用LSTM实现了股票预测的例子,让人受益匪浅。
但博主提供的代码有一些bug,无法直接运行,经过本人的多番调试,已能完整运行,需要修改的路径问题也已经在代码中给出了注释,希望能在深度学习的路上给大家带来一些帮助。
完整可运行的代码:本实例在Win10 Python3.6pycharm2018.1.4上运行成功,测试时间2018-11-09-13.45
完整代码下载地址