本文作者 | 姜慧丽 中信建投期货金融工程量化分析师
本报告完成时间 | 2024年6月28日
我们利用期货市场的行情数据,对不同类型的神经网络模型预测效果进行探索,并用一些简单模型预测效果进行对比。主要涉及单步单层线性模型、单步多层线性模型、多步模型、卷积神经网络、循环神经网络等。
在实际操作中,我们首先对数据集按照7:2:1的比例划分为测试集、验证集、训练集,然后将数据进行简单归一化、带入模型进行训练、对比模型预测结果。
从结果来看单步单层线性模型预测的效果最差。将单步单层线性模型踢出以方便观测其他模型预测的误差情况,可以看到预测效果最好的是多步线性模型,其次为卷积神经网络。其中属于循环神经网络的LSTM模型预测效果在验证集和预测集差异较大。
我们通过改变随机数等方式用相同模型进行预测,发现模型整体的预测稳定性比较一般。其中结构比较简单的多步线性模型预测稳定性较好。
风险提示
:
本研究主要基于历史数据统计,存策略失效风险、模型误设风险、历史统计规律失效等风险。
神经网络是一种可以相对较好地解决贡献度问题的深度学习模型。因此,虽然深度学习也可以采用其他模型,但神经网络的这一优点使其成为深度学习中最主要采用的模型。
在传统的机器学习中,特征学习往往需要大量的人工参与,因此传统的机器学习最终最耗时往往是特征工程的部分。特征的学习与最终的预测一般是分开进行的,所以存在着局部最优可能并不是整体最优的问题。
深度学习最早主要用来进行表示学习,是一种端到端学习,所以后期可用于处理更加复杂的决策问题。
本文我们将对神经网络模型进行一个初步的预测效果探索。
我们利用期货市场的行情数据,对不同类型的神经网络模型预测效果进行探索,并用一些简单模型预测效果进行对比。主要涉及单步单层线性模型、单步多层线性模型、多步模型、卷积神经网络、循环神经网络等。
1.1 划分训练集、验证集、测试集
我们将原始的行情数据按照7:2:1的样本量划分为训练集、验证集、测试集。数据按照本身行情顺序,而不采用抽取或者是打乱顺序的方式。主要是为了保证测试过程与实际应用过程的统一,并且防止未来函数带来的测试误差以及验证集和测试集验证效果的准确性。
1.2 数据归一化
本文中我们对数据进行简单的归一化处理,具体方法为(X-减去训练集的均值)/训练集的标准差。
数据归一化可以将不同量纲的数据调整到大致相同的区间,可以使模型以更快地速度找到最优解。在神经网络模型中,参数的初始化和学习率等参数的选择可能会受到样本中不同特征数据大小的影响,归一化可以简化这些参数的调整。
下图中为数据进行归一化后的情况,可以看到有一部分数据有长尾情况出现。
1.3 模型训练
在模型训练前,我们按照各个模型的特点设置窗口,窗口的主要特征包括输入窗口的宽度、标签窗口的宽度、时间偏移量、输入或标签的特征。
1.4 验证集、测试集预测值及预测效果对比
通过对验证集、测试集的多次预测,可以得到每个模型的mse,从而判断其预测效果以及预测稳定性。
我们输入的数据标签为'open'、 'high'、 'low'、 'close'、 'pct_change'、 'volume'、 'amount'、 'oi',预测的标签为'close';窗口的长度统一设置为120,数据为IF主力合约的60min数据。每个模型我们选取4个窗口展示模型的预测效果。
2.1 单步单层线性模型
从单步线性模型的预测情况来看,预测值与实际值偏离较大。但由于是单步模型,因此模型的参数较少,从模型分配给每个输入的权重来看,预测标签close得到了最高的权重。
2.2 单步多层线性模型
下图中是一个单步预测的多层线性模型,设置了5层。可以直观地看到,模型预测效果与单步单层线性模型相比有较大的提升。可以看到随着层数的增加,模型参数数量增加较快。
2.3 多步多层线性模型
我们加入池化层,并采用多步预测的方式,得到如下预测结果。此模型的缺点是,只能在固定“形状”的窗口上进行。
2.4 卷积神经网络
下图是卷积神经网络的预测情况及参数情况,可以看到在参数总数规模类似的情况下,从选取的窗口来看,卷积神经网络的预测效果要好于多步多层神经网络。
2.5 循环神经网络
下图是循环神经网络的预测情况及参数情况。可以看到在层数少于卷积神经网络的情况下,循环神经网络的总参数数量接近翻倍。
从结果来看单步单层线性模型预测的效果最差。将单步单层线性模型踢出以方便观测其他模型预测的误差情况,可以看到预测效果最好的是多步线性模型,其次为卷积神经网络。其中属于循环神经网络的LSTM模型预测效果在验证集和预测集差异较大。
我们通过改变随机数等方式用相同模型进行预测,发现模型整体的预测稳定性比较一般。其中结构比较简单的单步非线性模型预测稳定性较好。
我们利用期货市场的行情数据,对不同类型的神经网络模型预测效果进行探索,并用一些简单模型预测效果进行对比。主要涉及单步单层线性模型、单步多层模型、多步模型、卷积神经网络、循环神经网络等。
在实际操作中,我们首先对数据集按照7:2:1的比例划分为测试集、验证集、训练集,然后将数据进行简单归一化、带入模型进行训练、对比模型预测结果。
从结果来看线性模型预测的效果最差。将单步线性模型踢出以方便观测其他模型预测的误差情况,可以看到预测效果最好的是多步线性模型,其次为卷积神经网络。其中属于循环神经网络的LSTM模型预测效果在验证集和预测集差异较大。
我们通过改变随机数等方式用相同模型进行预测,发现模型整体的预测稳定性比较一般。其中结构比较简单的多步线性模型预测稳定性较好。
1. 邱锡鹏. (2020). 神经网络与深度学习. 机械工业出版社.
2. TensorFlow官方教程. (n.d.). 时间序列分析的结构化数据. 检索自 TensorFlow官方网站: https://tensorflow.google.cn/tutorials/structured_data/time_series
本报告观点和信息仅供符合证监会适当性管理规定的期货交易者参考,据此操作、责任自负。中信建投期货有限公司(下称“中信建投”)不因任何订阅或接收本报告的行为而将订阅人视为中信建投的客户。