研报&论文

再探基于遗传规划的选股因子挖掘 华泰证券-20190807

由yvan0617创建,最终由yvan0617 被浏览 158 用户

摘要

本文对遗传规划提出了三个改进方向,进一步提升其因子挖掘能力本文是对华泰金工前期报告《基于遗传规划的选股因子挖掘》(2019.6)的补充和改进,目的是进一步提升遗传规划挖掘选股因子的能力。本文提出并测试了 3 个改进方向:(1)新的适应度指标——因子互信息和多头超额收益;(2)非线性因子的使用方法;(3)交叉验证控制过拟合。测试中展示了20 多个挖掘出的选股因子供投资者参考。通过方法论的介绍,本文旨在说明遗传规划或许能挖掘出大量因子(尤其是非线性因子),这对于能够利用非线性因子的机器学习选股模型来说具有重要意义。

改进方向1

新的适应度指标——因子互信息和多头超额收益互信息可以捕捉因子和收益间的非线性关系,在遗传规划中使用互信息作为适应度指标,可以挖掘出多个互信息较高的因子。在分层测试中,该类因子与收益的关系大多呈现出“中间分层收益高,两端分层收益低”的特性,且分层规律稳定,这种规律能被基于机器学习的多因子选股模型有效利用。另外,部分投资者可能希望以多头超额收益来评价因子,本文也将多头超额收益加入到适应度指标中,挖掘出了数个多头超额收益较高的因子。

改进方向2

非线性因子的使用方法对于非线性因子的使用,一般有两大类方法,第一类方法是在因子合成时直接使用机器学习模型(如 XGBoost、神经网络等)拟合因子与收益率间的关系,该类方法在本系列前期报告中有过大量介绍。第二类方法是对单个因子做非线性变换,重构因子与收益之间的关系,最终得到线性因子。第二类方法中有两个具体方法:三次方回归残差法和多项式拟合法。两个方法各有优劣,在本文的测试中,三次方回归残差法较为简单,但转换效果较差;多项式拟合法转换效果较好,但需要逐个对因子拟合非线性关系,拟合结果对不同因子不能通用。

改进方向3

交叉验证控制过拟合为了控制过拟合的风险,我们在 gplearn 中加入交叉验证环节,观察新因子在验证集上的适应度表现,据此来评价遗传规划挖掘有效因子的能力。加入交叉验证之后,遗传规划的流程如下:将数据集按指定比例划分为训练集和验证集两部分,训练集用于训练和进化,循环生成子代因子;对于每一代新生成的因子,模型都会在验证集上计算适应度,并记录每一代的验证集平均适应度,观测验证集平均适应度的收敛性,当其明显收敛时,停止循环。在本文的测试中,确实观察到了因子平均适应度在验证集收敛的情况。风险提示:通过遗传规划挖掘的选股因子是历史经验的总结,存在失效的可能。遗传规划所得因子可能过于复杂,可解释性降低,使用需谨慎。本文仅对因子在全部 A 股内的选股效果进行测试,测试结果不能直接推广到其它股票池内。

\

正文

/wiki/static/upload/b8/b8a48eac-1067-49fc-b76c-51a6d0777170.pdf

\

标签

选股因子因子挖掘
{link}