有人说如果能够正确的预测股票的价格,就相当于发明了经济的永动机。在这个全民炒股的时代,谁不想拥有一个水晶球? 机器学习和深度学习在金融机构中的应用已经足够长久。LSTM作为在时间序列预测比较成功的算法,能够很好的预测股票数据吗? 下面以阿里巴巴美股数据为例,通过移动平均值预测MA)和LSTM, 搭建模型预测股票价格。用到的除了常用的machine learning libs, 用Keras 来搭建LSTM模型。
第一步当然是import libs
所用到的libs数据的来源是Alphavantage, 从14年9月19日上市以来到今天5月4日的数据。
阿里股价数据几年内股票的大致走势如下图
股价走势如果大家看过一些关于股票的视频的话肯定对移动平均线不会陌生。下面的图里展示了30天和十天的移动平均线, 可以看到虽然能够拟合大致的趋势,但是还是有很多地方出现了相反的趋势。基于此,下面是用LSTM来搭建模型。
移动平均线A data scientist is as good as the data he has。 所以第一步就是做一些数据的预处理, 特征缩放,分训练集和测试集, 生成矩阵。
有了数据之后, 第二步就是训练LSTM 模型,用到了keras 的以下模块,Sequential 用于初始化神经网络,Dense 用于添加密集连接的神经网络层,LSTM 用于添加长短期内存层Dropout 用于添加防止过拟合的dropout层。
LSTM模型fit 好之后用测试集数据来产生预测。
产生预测,画图最后的LSTM预测结果如下,可以看出LSTM模型要明显优于MA预测。
prediction vs real data总结
LSTM 真的很善于预测时间序列数据,相信如果和情感数据相结合能够产生可以实际应用的模型。股市有风险,希望每位会理性投资, 精致分析, 收益长虹。
网友评论