关于作者
嗨,你好。我是奇文,在大宗商品和贸易圈从业20年,现任职于一家为大宗商品企业提供咨询和IT服务的公司^_^,让我们一起聊聊大宗商品行业那些事儿。
免责声明:本内容依据公开内容写作,仅代表作者个人观点,与公司或其他机构无关。本内容不构成投资建议或暗示,请审慎判断并自行承担与此相关的投资风险,不对因使用本次内容所导致的任何损失承担任何责任。
01
以下2个问题,我是借助KIMI进行问答。我让KIMI解释LSTM,并且和经典的机器算法相比,总结LSTM的优劣势。
(一)LSTM解释
LSTM(Long Short-Term Memory)是一种特殊类型的神经网络,它擅长处理和预测时间序列数据。为了用简单的语言解释LSTM,我们可以将其比作一个记忆能力很强的人。
想象一下,你有一个记忆力非常好的朋友,他可以记住很多天前发生的事情,并且能够根据这些记忆来预测未来的事情。LSTM就像这样的朋友,它能够记住过去的信息,并利用这些信息来帮助做出决策或预测。
具体来说,LSTM网络由几个部分组成:
1. **记忆单元**:这些单元就像大脑中的记忆细胞,能够存储信息。它们可以决定哪些信息应该保留,哪些应该丢弃。
2. **输入门**:这个门控制着新信息的流入。它决定当前输入的信息中哪些是重要的,需要被记忆。
3. **遗忘门**:与输入门相反,遗忘门决定哪些旧信息不再重要,可以被忘记。
4. **输出门**:这个门控制着记忆单元中的信息如何被使用。它决定哪些信息将被输出,用于当前的决策或预测。
通过这些门的相互作用,LSTM能够学习长期依赖关系,即过去发生的事件如何影响未来的事件。这使得LSTM非常适合处理序列数据,比如语言、股票价格、天气模式等。
(二) LSTM优劣评价
我的问题:在价格预测上,跟经典的机器学习的算法相比,比如KNN,随机森林,逻辑回归,SVR,以及其他集成算法相比,LSTM等为代表的神经网络算法的优势和劣势是什么?哪一个在价格预测上有更多的应用。
KIMI 找了11篇资料作为参考,他的回复如下:
在价格预测上,LSTM等神经网络算法与其他经典的机器学习算法相比,各有其优势和劣势。以下是根据搜索结果得出的一些对比:
### LSTM神经网络算法的优势:
1. **处理时间序列数据**:LSTM特别设计用于处理和预测时间序列数据,它能够捕捉长期依赖关系,这在股票价格预测等时间序列分析中非常有用。
2. **记忆效应**:LSTM具有记忆效应,可以记住过去的信息,并利用这些信息来帮助做出决策或预测,这在价格预测中是一个显著的优势。
### LSTM神经网络算法的劣势:
1. **计算资源**:LSTM的训练对硬件的要求非常高,需要大量的计算资源和存储带宽,这可能导致训练时间长和成本高。
2. **梯度消失问题**:尽管LSTM通过其结构设计缓解了梯度消失问题,但在处理非常长的序列时,仍然存在一定的梯度消失问题。
3. **并行处理劣势**:LSTM不像某些其他算法那样容易并行化,这可能限制了其在大规模数据处理上的应用。
### 其他算法的优势:
1. **随机森林**:在多个数据集上表现稳定,鲜有短板,且在数据维度较高时表现优于AdaBoost,但不及SVM。
2. **KNN**:简单易懂,适用于需要模型容易解释的场景,如推荐算法。
3. **逻辑回归**:输出值自然落在0到1之间,具有概率意义,适合作为其他算法的基础组件,尽管在特征相关性高时表现不佳,但模型清晰。
### 应用情况:
根据搜索结果,LSTM模型在股票价格分析与预测上展现了优势,尤其是对于业绩较好的股票,采用LSTM模型预测精度更高。此外,还有开源项目专门使用LSTM进行股票价格预测,这表明LSTM在金融时间序列预测领域有实际应用。
LSTM和其他神经网络算法在处理具有长期依赖性的时间序列数据方面表现出色,这使得它们在股票价格预测等应用中受到青睐。然而,它们在计算资源和并行处理上的劣势也是不容忽视的。相比之下,传统的机器学习算法如随机森林、KNN和逻辑回归在计算效率和模型解释性方面可能更具优势。选择哪种算法往往取决于具体问题的需求、数据的特性以及计算资源的可用性。在实际应用中,可能需要结合多种算法,通过交叉验证来确定最适合的模型。
(三)基本知识总结:
简而言之,LSTM就像一个拥有超强记忆力的助手,它能够记住过去的事情,并利用这些记忆来帮助我们理解和预测未来。
从我的阅读范围看,LSTM相比于其他的机器算法和神经网络相比,确实有着更为突出的表现,所以也是我把这个模型拿出来进行学习和测评的原因。以下是部分论文的中关于算法的比较,这些论文中都指出了LSTM算法的优势(当然部分论文是多个算法结合的结果,这个下面会提到),比如:
02
我的LSTM模型算法说明:
1、 数据来源:
训练数据22-23年上海期货铝主力合约结算价,测试数据24年上海期货铝主力合约结算价
2、 模型设计与测评:
我只用一个LSTM结构。我也尝试搭2层,但还没1层效果好。采用的时间步长是3天,用LSTM进行处理训练数据,用线性回归函数进行拟合。
简单说,也就是让LSTM结合过去3天的价格,产生下1个交易日的结算价的预测,并与下一个交易日的正式结算价格进行比较。其实得分还是不错的。
(1)训练拟合结果及得分
简单的单层的LSTM的R方系数,也有0.95。R方系数是一个模型对数据拟合优度的指标。它表示模型解释的变异占总变异的比例,是回归分析中非常重要的统计量。
R平方系数的值介于0和1之间。值越接近1,表示模型的拟合度越好,能够解释的变异越多。
R平方系数为0 表示模型没有提供比简单使用均值更好的拟合。
R平方系数为1 表示模型完美地拟合了所有的数据点。
(2)测试结果及得分
我把这个模型放到了测试数据上,也就是2024年的铝期货价格测试上。
对于测试数据,R方系数也有将近0.93,看起来还行。比训练数据低的原因是因为,在训练的时候,算法会尽量拟合。但是到了测试数据下,算法是没有这部分数据的。
03
1、别高兴得太早
可能有些朋友对这个测试数据感觉不错。如果做交易的朋友,看见2024年的预测价格线,是不是会有眼熟的感觉?这个不就是跟3日均价线一个意思吗?
从算法上说,LSTM的处理过程远比3日均价线复杂,这个从本文最上面的名词解释就可以明白。但是本质是一样的,都是基于过去的价格,对下一日的价格进行预测。只是对于过去价格的处理方法不一样而已。
我们来看一下实际价格,预测价格和3日均价的走势图。
我还做了直方图,看LSTM和MA3的跟下一个交易日结算价的比较下,偏离程度的分布情况。
不知道大家看出了什么吗?嗯,简单说,LSTM还不如MA3的价格预测。比如在欧美出台对俄铝的在LME库交割的限制政策以前,市场在2405合约上,有一波大幅的拉升。MA3的跟涨很快,但是LSTM很慢,导致了4次-2%以上的负偏差。而MA3一次也没有。是不是很尴尬?一顿操作猛如虎,睁眼一看原地杵!
但是,LSTM的改进空间,远远大于MA均线。LSTM的真正在大宗商品业界的应用潜力,我觉得是在第一部分提到的语言处理、情感分析等等。也就是说,需要通过LSTM,来分析市场的热点、大众的心理反映等等,以此来修正价格的预测。这个在以往的基本面分析、资金面分析等领域内,是一个空白。
当然在学术界,也有很多在此方面的研究,并且做出来模型的改善,以下是其中一篇论文的指标评估。他是多个模型的结合,可以看到,他的模型R方到了0.99。
2、主要存在的问题
LSTM等神经网络算法主要存在的问题,还有着多个方面:
1) 处理复杂
对于神经网络算法的操作难度,一点不亚于原来的宏观面和基本面的难度。简单模型,效果不显著;复杂模型,人才要求高。这个从我近期招人贴中可以看出来,对于人才的要求很高,金融、计算机、数学、大宗商品业务、编程等等复合知识背景,而且深入程度要求很高。
2) 时效滞后
凡是基于过往价格本身的预测,一定存在着时间滞后。也就是说一定是真实价格转折了,出现拐点了,模型给出的预测价格才能转向。这个无论是均线,还是LSTM一定是如此的。大家看我上面的价格走势比较,就能够发现这一点。
这个问题如果大家感兴趣,可以搜索“深度学习价格预测时间滞后”等关键词,问询KIMI,或者我后台的问答机器人。
而要改进这个时间滞后性,是要结合刚才说的LSTM文本学习之类的,当然还有其他更多措施,比如复杂的模型组合等等,这个又成了第一个难题,处理复杂,人才要求高。
3) 无法解释
神经网络的处理过程,给出的结果,是无法解释的,是一个黑盒。这个和经典的机器学习的算法,还不一样,决策树之类的机器学习,至少还知道过程和特征值。是传统的技术指标,当然也知道背后的运算组成,比如MA均线系统 。这符合我们想知道因果关系的认知逻辑。
面对一个无法解释的价格预测,即使有0.99的R方系数,也会心中惴惴不安。因此经典的机器学习的算法,还有刚才说的神经网络的补充做法,是有现实理由的。
4) 突发情况应对
从原理上,大家就可以看出仅仅是基于过去的价格进行预测,肯定是无法处理眼下当期的价格调整的因素变动的,比如LME铝的突发情况的应对。因此可能需要加入传统的人工调整的环节。
这个也是现在市面上看到的所谓“人工智能”价格预测产品的设计。对于日常行情,是“智能”处理的,对于突发情况,是“人工”处理的,结合起来就是“人工智能”的。现实就是这么个情况。
好了,以上就是今天的内容。欢迎大家交流,也欢迎大家用KIMI或者问答机器人进行查询。
奇文闲谈大宗商品