专栏名称: Python中文社区
致力于成为国内最好的Python开发者学习交流平台,这里有关于Python的国内外最新消息,每日推送有趣有料的技术干货和社区动态。 官方网站:www.python-cn.com
目录
相关文章推荐
Python爱好者社区  ·  全球最大盗版视频网络被一锅端,月入近20亿人民币! ·  2 天前  
Python开发者  ·  三种 Transformer ... ·  2 天前  
Python爱好者社区  ·  16岁中学生获正高职称,后续来了 ·  1 周前  
Python爱好者社区  ·  炸裂!华为AI「打卡营」上线 ·  1 周前  
Python爱好者社区  ·  特朗普上台,第一刀再次扎在了留学生身上。。。 ·  1 周前  
51好读  ›  专栏  ›  Python中文社区

用深度学习预测特斯拉股价走势!CNN、RNN、LSTM三大模型在线battle!

Python中文社区  · 公众号  · Python  · 2024-11-29 08:06

正文

大家好,我是橙哥!股票价格预测一直都是金融量化从业者都非常关注的领域。传统的时间序列预测方法,如自回归(AR)、自回归移动平均(ARMA)和自回归积分移动平均(ARIMA)模型,在股票价格预测方面发挥了重要作用。这些方法依赖于预定义的数学方程来建模单变量时间序列,并因其简单性和可解释性而被广泛接受。
然而,AR、ARMA和ARIMA存在固有的局限性,使它们不适合捕捉金融时间序列数据所特有的潜在动态。比如其中一个局限性是,为某一时间序列确定的模型不能很好地推广到其他时间序列,降低了其适用性。此外,它们难以识别嵌入在数据中的复杂模式,限制了其有效性。
近年来,先进的深度学习模型,如卷积神经网络(CNNs)、循环神经网络(RNNs)及其变体,如长短期记忆(LSTM),引起了相当大的关注。这些模型利用其从历史数据中学习的能力,而无需预定义的方程,使其成为揭示隐藏关系的理想工具。它们将金融数据建模为一个多维问题,从而实现更准确和稳健的预测。

本文将探讨CNNs、RNNs和基于注意力的LSTM模型应用于预测特斯拉(TSLA)股票价格走势。目的是展示每种方法的优缺点,并提供关于深度学习模型如何超越传统线性模型的洞察。你可以在文末获取本文的完整源代码
为什么选择特斯拉股票?
特斯拉汽车公司(TSLA)是分析师和投资者最感兴趣的股票,因此它是评估LSTM、RNN和CNN等先进预测模型性能的理想选择。该公司代表了高风险、高回报的投资,因其技术创新及其领导层和市场动态引发的争议而备受关注。
公司创始人埃隆·马斯克(Elon Musk)是科技行业最具争议的人物之一,他的一举一动都影响着特斯拉股价的走势。如图表所示,他对2024年美国总统特朗普的支持进一步加剧了不确定性,并增加了股票的波动性。

这种关联度与马斯克的公众形象相辅相成,突显了特斯拉作为动态和嘈杂数据捕捉模型测试平台的潜力。2010年至2024年特斯拉的收盘价证明了这一点。

我们通过使用yfinance库获取特斯拉历史股票价格数据。

数据预处理
我们开发了一个预处理管道,首先使用MinMaxScaler对特斯拉的调整后收盘价进行归一化缩放。这一步骤确保模型能够高效地处理数据,而不会受到原始值尺度的偏见。我们还引入了一个滑动窗口,以创建历史股票价格序列。每个滑动窗口跨越20天(窗口大小)。最后,我们将数据重塑为适合LSTM、RNN和CNN的格式。我们没有混洗训练和测试数据,以保留股票价格的时间顺序。

LSTM模型与注意力机制

该模型结合了自定义注意力层,以增强其捕捉特斯拉股票价格中关键时间模式的能力。该模型使用50个单元来预处理输入序列,并通过内部记忆机制保留显著的时间依赖性。我们还包含了一个drop out层,通过在训练期间随机禁用神经元来降低过拟合的风险。训练后,我们评估模型的性能,并将预测结果与实际股票价格进行对比绘图。

该模型的平均百分比误差为0.17%,表现优异
循环神经网络(RNN)
LSTM在处理序列数据方面表现相当不错。然后,我们整合了一个RNN来检查它是否能捕捉时间依赖性。此外,我们使用了一个双向RNN用于同时考虑过去和未来的输入。该模型在平均绝对百分比误差方面为0.17%,优于LSTM。

卷积神经网络 (CNN)

最后,我们使用 CNN 来研究它在预测特斯拉股票价格方面的表现。该模型设计为自动学习数据中的空间层次和模式。我们应用了多个卷积层,这些层使用过滤器来识别输入数据中的关键特征。此外,我们使用池化层来减少特征图的维度并保留最重要的信息。由于我们使用了全连接层,输出是一个回归值,用于预测未来的股票价格。

CNN模型在平均绝对百分比误差为0.14%的情况下表现优于LSTM和RNN。

对于三个模型的平均百分比误差如下:

总结

现在我们已经证明,基于深度学习的股价预测方法使用三种不同的神经网络架构,能够很好地捕捉隐藏的动态。尽管特斯拉股票波动性很大,但我们的模型实现了非常低的平均绝对百分比误差:LSTM为0.17%,RNN为0.17%,CNN为0.14%。在实验中我们可以得出深度学习模型在捕捉时间差异和隐藏模式方面是有效的,在三种模型中CNN模型有效地捕捉了股票价格的突然变化和趋势

长按下方扫码获取本文完整源码

点击阅读原文加入宽客邦量化俱乐部
获取本文完整源码