全文总结 本文主要介绍了对 AlphaNet--V1 模型进行改进得到 AlphaNet--V3 模型的过程,以及将随机森林模型作为基准与 AlphaNet--V3 进行比较。具体内容包括:
- AlphaNet--V1 模型在实证检验中表现不佳,其给出的标签预测值几乎为常数,因此对其进行改进。
- 在 AlphaNet--V3 中加入多步长的特征提取层,将池化层替换为门控循环单元(GRU),并调整标签值为涨跌方向和超额收益方向。
- 使用不同方法查看 AlphaNet--V3 的网络结构,并对模型进行训练和测试,绘制训练集和测试集上损失的变化,比较预测值和真实值。
- 调整预测目标为收益率的方向和超额收益率的方向,分别进行实验并分析结果。
- 将随机森林模型作为基准,以“超额收益率的方向”为预测目标,介绍其分类预测过程,并输出模型评价指标和特征重要性排序。
重要亮点
- AlphaNet-V1 的不足与改进方向:AlphaNet-V1 模型在实证检验后,给出的标签预测值几乎都为常数,只在少部分样本点有突出值。本文尝试对其进行两方面改进,一是调整网络结构,加入不同步长的特征提取层,并将池化层转换为门控循环单元(GRU);二是调整标签值,将预测标签转换为涨跌方向和超额收益方向。
- AlphaNet-V3 的搭建:在 AlphaNet-V3 中,加入步长为 3 的特征提取层,拓宽因子挖掘的可能性。将池化层替换为 GRU,保留特征提取层得到的输出本身的时序信息。使用 torchsummary 包和 TensorBoard 查看网络结构,构建 AlphaNet-V3 模型,在两个特征提取层及 GRU 层后,将输出展平后拼接,得到 60×1 的矩阵,连接到预测目标输出预测值。
- AlphaNet-V3 的训练和测试:相比 AlphaNet-V1,AlphaNet-V3 模型更复杂,训练时需要更多轮次才显现出收敛趋势。将 epoch_num 设为 30,对模型进行训练和测试,绘制训练集和测试集上损失的变化,比较预测值和真实值。发现 AlphaNet-V3 给出的收益率预测值波动比真实值大,预测效果不理想。
- 调整预测目标为收益率的方向:将预测目标转换为收益率的方向,即个股在未来 10 个交易日的价格涨跌。在代码中进行调整,将预测标签转换为 0 和 1,全连接层最后的激活函数设为 sigmoid,损失函数设为 Binary Cross Entropy。绘制训练集和测试集上损失的变化,绘制 ROC 曲线和混淆矩阵,评价预测效果。结果表明预测效果仅略高于基于样本正负比率的随机猜测。
- 调整预测目标为超额收益率的方向:再次调整预测目标为个股在 10 个交易日后的超额收益的正负值。将预测标签转换为超额收益率的正负,计算截面的收益率均值,根据个股收益率相对于截面收益率的大小确定超额收益率的正负。绘制训练集和测试集上损失的变化,绘制 ROC 曲线和混淆矩阵,评价预测效果。损失值得结果略有下降,或许说明模型在预测超额收益率的方向上表现更好,但效果依旧一般。
- 随机森林模型作为基准比较:以“超额收益率的方向”作为预测目标,将随机森林模型作为基准与 AlphaNet-V3 进行比较。介绍随机森林模型进行分类预测的过程,包括读取数据、展平数据、训练和测试模型、输出模型评价指标和特征重要性排序。结果表明精确率、召回率均较低,基准模型的表现也不好。