2024年AI选股模型特征筛选与处理:SHAP、中性化与另类特征

一、为什么需要特征工程?

在前期的研究报告中,我们使用了梯度提升树(GBDT)和神经网络(NN)两大类模型构造 机器学习选股模型,并在 A 股各宽基指数成分股上均取得了不错的预测效果。随后,我们 对模型训练中的各类细节问题展开了深入讨论和充分的对比验证,最终得出了针对量化选 股领域更优的训练设置。然而,在与客户交流的过程中,我们发现客户普遍对以下问题感 到关心:各因子是否都有效,将所有因子输入模型是否能够得到最优的表现,以及因子本 身是否最适合作为模型的输入。这一类模型输入端因子处理的问题,正是机器学习领域特 征工程研究问题的一个子集。对特征进行筛选、加入新的另类特征以及对特征做一些精心 设计的预处理等特征工程方法,旨在提高模型对特征信息的利用率,增强模型的表现。

具体来说,进行特征工程的主要原因有如下几个: 提升模型性能:在二级市场投资中,资产价格的变化往往受到多种因素的影响,包括 宏观经济指标、公司财务状况、市场情绪等。这些因素之间可能存在非线性关系和交 互作用。通过特征工程,投资者可以构造新的特征,如经济周期调整后的财务比率、 不同资产间的交互项等,从而捕捉这些复杂关系,提升预测资产价格走势的模型性能。 降低模型复杂性:金融市场中常常需要处理高维数据,如多只股票的价格、多个经济 指标等。高维数据不仅增加模型的计算复杂性,还可能导致过拟合问题。通过特征选 择或降维技术(如主成分分析 PCA),可以筛选出最具信息量的特征,减少特征数量, 简化模型。例如,在多因子模型中,选择最具解释力的几个因子进行投资组合构建。 提高模型解释性:特征工程通过将原始数据转换为更具解释性的特征,如使用财务比 率(如市盈率 PE、净资产收益率 ROE)、技术指标(如移动平均线、相对强弱指数 RSI) 和交互特征,可以帮助投资者更直观地理解模型的预测依据。这种转换使得复杂的数 据关系以更易于解读的形式呈现,揭示隐藏的市场模式和趋势,从而提升模型的透明 度和可解释性,有助于投资决策的合理性和交流的顺畅。 在本报告中,我们将对 AI 选股模型中的输入因子进行详尽的特征工程分析,主要涵盖三 个方面:一是因子的筛选,即如何有效地挑选适合的因子集以喂入模型;二是因子的处理, 主要涉及各类因子和标签在输入时的中性化操作;三是另类因子的加入,包括宏观经济数 据、BARRA 风格因子收益率及高频因子等。在对各类改进方法与基准模型进行比较之后, 我们将有效的改进方法融合到成熟的 GBDT+NN 机器学习选股框架中,形成特征工程优化的 GBDT+NN 增强策略。相较于前期报告中的增强策略,该策略在表现上取得了一定的进步。

二、特征选择方法介绍

直观上,通过针对性地选择因子,可以获得不亚于全部因子输入模型的结果,因为一个最 简单的选择策略就是将所有因子选出来。因此,对大量因子进行特征选择再输入模型不失 为改进量化选股模型的一条可行思路。我们将特征选择方法分为三类:基础统计方法、模 型解释性方法(以 SHAP 为例)与深度学习模块(以 STG 为例),分别进行介绍,并在下一 章进行效果的实验检验。

2.1 基础统计方法

去掉重复值高的特征:这种方法的主要思想是如果一个特征的值大部分都是重复的 (即变化很小或者没有变化),那么这个特征对于模型的训练可能帮助不大。这种情况 下,我们可以直接删除这个特征。这种方法的主要优点是简单易行。

去掉相关性低的变量:这种方法是基于特征与目标变量之间的相关性来选择特征的。 如果一个特征与目标变量的相关性很低,那么这个特征可能对模型的预测帮助不大, 可以被删除。

基于 IV 值的特征选择:IV 值(Information Value)是衡量特征对目标变量预测能力 的一种指标。IV 值越大,说明这个特征对于目标变量的预测帮助越大。这种方法的优 点是可以量化特征的重要性,但是计算复杂度较高。

基于互信息特征选择:互信息可以衡量两个变量之间的依赖程度,如果特征与目标变 量的互信息值高,那么这个特征对于预测目标变量可能非常有用。这种方法的优点是 可以捕捉到特征与目标变量之间的非线性关系,但是计算复杂度较高。

基于卡方检验特征选择:卡方检验主要用于测试特征与目标变量之间的独立性。卡方 值越大,说明特征与目标变量越不独立,这个特征可能对于预测目标变量非常有用适用于分类问题中。

基于树模型的特征选择:树模型(如决策树、随机森林等)可以计算出每个特征的重 要性,然后根据特征的重要性来选择特征。这种方法的优点是可以处理非线性关系, 而且计算效率高,但是可能会受到模型的影响,只适用于树模型。

2.2 SHapley Additive exPlanations

SHapley Additive exPlanations(SHAP)于 2017 年 NIPS 大会提出,目前引用量已超过 2.3万。SHAP是一种被广泛使用的模型解释方法,灵感来源于合作博弈论中的Shapley值。 SHAP 为每个特征赋予一个影响分数,该分数衡量了在预测一个具体样本时,该特征对预 测结果的贡献程度。SHAP 的计算过程如下: 1. 对于每个样本,首先考虑所有可能的特征子集。例如,对于 3 个特征的样本,可能的 子集包括空集、只包含特征 1 的集合、只包含特征 2 的集合、只包含特征 3 的集合,以及 包含特征 1 和 2、特征 1 和 3、特征 2 和 3、所有特征的集合。 2. 对于每个子集,计算在包含和不包含当前特征的情况下,模型预测的期望值之差。这 个差值衡量了当前特征的存在对模型预测结果的影响。 3. 对所有的子集进行平均,得到当前特征的 SHAP 值。这个值表示了当前特征对模型预测 结果的平均贡献。

SHAP 具有良好的解释性,能够量化特征的重要性,并且对任何模型都适用,因此可以用来 做模型的事后归因,并进行特征的选择。但是,计算 SHAP 值的过程通常需要大量的计算 资源,尤其是在特征数量较多的情况下。

2.3 STochastic Gates(STG)

Feature Selection using STochastic Gates(STG)于 2020 年 ICML 大会上由耶鲁大学 研究人员提出,为了解决在神经网络估计问题中的特征选择问题。 线性估计中的特征选择问题已经被广泛研究(比如 LASSO),但是在非线性函数的特征选 择上却没有那么多的研究。而在许多实际问题中,模型往往是非线性的,因此需要一种能 够在非线性环境下进行特征选择的方法。在神经网络中进行特征选择,可以提高模型的解 释性,减少过拟合,以及降低计算复杂度。 STG 方法使用了一种基于 L-0 范数的正则化方法进行特征选择。L-0 范数是用于衡量一个 向量中非零元素的数量,直接优化 0 范数是一个 NP 难问题。STG 方法使用了一种连续的 伯努利分布来近似 0 范数,使得模型可以通过梯度下降来学习特征选择的参数。为此,STG 方法提出了一种新的特征选择机制,即随机门(stochastic gate)。每个特征都分配了一 个随机门,该门的激活概率是可学习的。训练过程中,随机门根据其激活概率随机地对其 对应的特征进行采样。这种机制允许模型在训练过程中自动选择重要的特征。

三、特征选择方法效果

关于因子选择,我们基于表现良好的 Alpha158 因子库进行筛选。在模型选择上,鉴于梯 度提升决策树(GBDT)模型在训练过程中具有自主进行特征选择的能力,因此本报告仅考 虑神经网络(NN)模型,并以在我们之前的报告中稳定表现的门控循环单元(GRU)模型 作为代表。在选股范围的设定上,为了让实验结果更具普遍性和代表性,我们选择在全 A 股市场范围内进行训练和选股。同时,我们也考虑到市场风格会随着时间的推移而发生变 化,因此所有的实验都基于年度滚动的方式进行特征的选择和模型的训练。此外,为了确 保结果的稳定性和可靠性,所有的训练结果都是基于 5 个不同随机种子进行训练的结果的 平均值。这样可以有效地消除随机种子选择对实验结果可能产生的影响,从而使得实验结 果更具有信服力。所有的训练标签都是未来 20 个交易日的收益率。

3.1 基础统计方法

我们选择了三种基础的统计方法进行因子筛选测试,分别是基于 Spearman 相关性、互信 息和 LightGBM 模型的重要性进行筛选。具体而言,每次滚动训练时,我们首先基于训练 集和验证集的数据与标签,计算各个因子的日度 Spearman 相关性和互信息值。为了提高 稳定性和可靠性,我们会求取这些值的平均值。然后,我们选出得分最高的 64 个因子, 作为后续步骤的输入。对于 LightGBM 方法,我们使用训练集和验证集进行模型训练。训 练完成后,利用 LightGBM 模型自带的 feature_importance 接口来评估各个因子的贡献 度,从而选出 64 个最重要的因子。最终筛选出的因子将作为输入,应用于下一步的 GRU (门控循环单元)模型训练。 值得一提的是,除了这三种原始方法,为了防止选择出的 64 个因子内部之间相关性过高, 我们还考虑了最大边际相关性采样方法。最大边际相关性(Maximal Marginal Relevance, MMR)是一种用于推荐系统中的重排序方法,旨在平衡结果的相关性和多样性。传统的推 荐系统通常仅关注推荐结果的相关性,即推荐的内容与用户兴趣的匹配程度。然而,仅关 注相关性可能导致推荐结果的冗余,即推荐结果中的多个项目非常相似,从而降低用户体 验。MMR 通过引入多样性度量来解决这一问题。在推荐结果的重排序过程中,MMR 方法会 选择那些不仅与用户兴趣高度相关,而且与已选结果具有一定差异性的项目。具体来说, MMR 在每一步选择下一个推荐项目时,会计算该项目对用户兴趣的相关性减去其与已选项 目的相似性,从而最大化边际相关性。MMR 的公式通常表示为:

MMR( ) = λ ⋅ Rel( ) − (1 − λ) ⋅ max ∈ Sim ( , ),

其中:Rel( )表示项目与用户兴趣的相关性,Sim( , )表示项目与已选项目之间 的相似性,是已选项目的集合,λ是一个平衡参数,用于调整相关性和多样性之间的权重。 通过这种方式,MMR 方法能够生成既符合用户兴趣又具有多样性的推荐结果,从而提升用 户体验和满意度。 因此我们试图测试在因子选择的场景下,MMR 是否有效。对于 Spearman 相关性方式,MMR 中Rel( )与Sim( , )分别为因子和收益率标签与其它因子 Spearman 相关性的绝对值, λ设置为 0.5;而对于互信息方法,Rel( )为因子与收益率标签之间互信息大小,Sim( , ) 为因子之间 Spearman 相关性的绝对值,λ设置为 0.2(考虑到前后两项之间的量纲关系)。 基于 Spearman 相关性、互信息和 LightGBM 模型重要性三种方式,叠加 MMR 插件,共有六 种方式。

总体来看,Spearman 相关度(无 MMR)在特征筛选方面表现最佳,尤其在多空策略的表现 上,显著优于其他几种方法。然而,从分位数组合的年化超额收益来看,互信息(无 MMR) 的筛选效果也相当出色。LightGBM 重要度筛选的主要优势体现在较好的风险控制与较小 的多空最大回撤。在基础统计方法上,MMR 插件并未显示出显著的优势。

3.2 SHAP 方法

对于 SHAP 方法,我们在每次滚动训练时,首先使用 Alpha158 因子集来训练 LightGBM 和 GRU 两个模型。接着,我们分别利用 SHAP 库中的树解释器(TreeExplainer)和梯度解释 器(GradientExplainer)对这两个模型进行可解释性分析,得到 158 个因子的 SHAP 值。 SHAP 值表示每个样本中每个因子对最终结果的贡献度(可以是正值或负值)。因此,我们 将贡献度绝对值的均值作为衡量因子重要性的指标。对于 GRU 模型,需要对时序数据取一 个平均值,以确保因子重要性测量的准确性。由于 SHAP 方法的计算时间较长,我们会随 机采样 10^5 个样本进行分析。经过验证,随着抽样样本数量的增加,筛选出的因子集逐 渐趋于稳定,其与全量样本进行 SHAP 分析的误差在可接受范围内。得到的重要性值将用于后续的因子选择。

总体而言,这几种方法的表现较为接近,但在某些方面各有优势。具体来说,LightGBM 在 IC 统计量上表现更为出色,显示出其在因子预测能力上的优势。然而,GRU 模型在多头策 略上的表现更为优异,展现出其在捕捉上涨机会方面的潜力。在多空策略的表现上, LightGBM 的超额收益更高,表明其在平衡多头和空头策略方面具有较强的优势。不过,需 要注意的是,LightGBM 的回撤稍大一些,这意味着虽然其收益较高,但伴随的风险也相对 较大。总体来看,MMR 插件在这些方法中的表现依旧不尽如人意,未能展现出明显的优势 或改进效果。这表明,在当前的模型和数据环境下,MMR 插件的应用效果有限,尚需进一 步优化和改进才能发挥其潜力。 此外,SHAP 工具包提供了丰富的可视化工具,使我们能够直观地观察各个因子在模型预 测中的作用。这些可视化工具不仅帮助我们理解模型的决策过程,还能为进一步优化模型 提供有价值的参考。可以看到,利用 SHAP 的可视化模块,我们可以直观地看到单一样本、 部分样本、全体样本中各个因子的贡献值。

3.3 STG 方法与整体比较

由于 STG 方法是引入一个深度学习模块自行选择合适的因子,不能引入 MMR 模块,因此我 们将它与之前的两个特征选择方法在一起比较。在比较之前,我们先可视化一下 STG 的特 征选择效果。取第一次滚动时,STG 的特征选择层输出的门控信息,按照从大到小顺序排 列,可以看到选择了 44 个因子,剩余的因子对应的门控信号均为 0。,因此 STG 方法可以 有效地选择部分特征。

我们将 STG 与 Spearman、互信息、SHAP 对 LightGBM 和 GRU 做解释与不做特征选择的 GRU 基准方法,在全 A 股上比较表现。特征选择方法均不考虑 MMR。

可以看到,基于 SHAP 解释 LightGBM 得到的模型的 IC 统计量表现最好,而在多头超额与 多空表现上,基于 SHAP 解释 GRU 得到的模型表现最优。因此,SHAP 解释方法在筛选因子 上有着较好的表现。从多空净值曲线来看,大多数特征选择方法的表现均超过了基准 GRU模型。相比之下,STG 方法的表现则显得相对平庸。因此,特征选择方法不仅能够直观地 降低训练成本,增强模型的可解释性,同时还有助于提升原有模型的整体表现。

3.4 滚动训练的必要性讨论

考虑到市场风格的变化,我们在利用各种方法进行因子筛选时,采取年度滚动的方式,最 终取得了较好的表现。因此,我们在此做一个讨论,也就是观察一下每年度选取的因子差 异性大小,进而从一个侧面讨论滚动训练是否是有必要的。我们以整体表现最优的 SHAPGRU 为例,我们将每一次滚动选择的因子按 SHAP 值从左往右降序排列,然后观察每次滚 动选择的因子是否出现在了上一次的选择中,如果有则标为红色,如果没有则标为绿色。 由此,我们发现大部分分值最高的因子变化较少,排名在 32 名到 64 名的因子变化较快。 近年来,变化有向分值较高因子迁移的趋势,可能表征着风格切换的加剧。总体来说,滚 动训练是有必要性的。

四、因子与标签中性化效果

为了确保单因子测试能够准确反映因子本身的收益贡献,必须在测试过程中尽量排除或减 少其他可能影响收益的因子(如市值和行业),因为这些因子可能会干扰测试结果。为此, 我们采用了一种方法,即在测试中剔除市值和行业因子,以实现所谓的“行业市值中性化”。 通过这种方法,我们可以更清晰地观察到被研究因子的纯净收益(Pure Alpha),而不是 其他因素的混合效应。

可以看出,对于 GRU 模型,中性化处理对整体表现影响不大,甚至有一定程度的负面影响。 而对于 LightGBM 模型,标签中性化处理后与基准合成得到的因子,其 IC、多头超额收益 和多空 Sharpe 比率的表现均有显著提升。这两种模型表现差异的原因可能在于,对于 GRU 模型,其输入数据本身缺乏基本面信息,标签中性化后,模型更是缺少了这一关键信息, 导致表现不佳。因此,对于 GBDT 类模型,我们可以考虑在将因子输入模型之前进行标签 的中性化处理,以确保模型能够充分利用基本面信息,从而提升整体表现。

五、加入另类因子的效果

5.1 宏观指标等截面不变的因子

考虑到量价因子和基本面因子在机器学习选股模型中已经非常拥挤,同时为了更好地捕捉 市场趋势和有效管理风险,我们决定引入一些适用于全市场且相对稳定的数据作为模型的 因子。这些数据包括宏观经济数据、Barra 因子收益率以及时间截面上同一因子的均值。 宏观经济数据能够反映整体经济环境的变化,如 GDP 增长率、通货膨胀率、利率和失业率 等,这些因素对公司的盈利能力和市场表现有着深远的影响。Barra 因子收益率则提供了 市场上不同风险因子的收益率,如市场风险、行业风险和风格风险等,帮助我们捕捉多种 风险因子的影响。此外,时间截面上同一因子的均值可以帮助我们理解因子的长期趋势和 稳定性。我们希望这些另类因子的引入可以提高模型的全面性和准确性,增强模型在不同 市场环境下的稳定性和鲁棒性,从而更好地捕捉市场趋势。

对于 GRU 方法,我们首先将 Alpha158 与三类另类因子分别合并得到三个因子库,接着利 用之前特征选择中表现较好的 Spearman 方法分别进行特征筛选,结果发现另类因子几乎 都没有被筛选出来。因此我们认为对于 GRU 方法,另类因子可能缺乏影响力。而对于 LightGBM 方法,其天然地具有特征选择的能力,因此我们将 Alpha158、基本面因子和三 类另类因子分别组合,训练得到三个 LightGBM 选股模型。

可以看到,另类因子在 IC 表现上并未产生贡献,但在多头超额收益和多空表现方面,加 入宏观因子后均超越了基准。因此,引入宏观经济数据,可以在一定程度上帮助模型学习 市场走向,从而获得超额收益。总体而言,另类因子对模型表现缺乏显著的正向作用,这 需要进一步研究。

5.2 分钟频量价数据计算的高频因子

以上讨论的因子主要基于日频量价数据或低频的基本面数据构建,而分钟级别的高频数据 同样在量化研究中备受关注。本章节将初步探讨利用高频数据构建因子对时序选股模型的 影响。对于每一个交易日的分钟频 OHLCV 数据,我们将每日交易时间三等分,与整日的数 据一起,计算四组日频的基础因子共 212 个。

由于高频因子种类繁多,我们根据之前对特征选择方法的分析,选用了表现较好的 SHAPLightGBM 方法进行特征筛选,最终挑选出 64 个因子用于训练。具体操作是先用 212 个高 频因子训练一个可靠的 LightGBM 模型,然后对该模型进行 SHAP 分析,再将 SHAP 值较高 的 64 个因子选出,作为 GRU 模型的输入。考虑到市场普遍认为高频因子的表现与市值密 切相关,我们在不同的宽基指数上对高频因子进行了分析。经过计算,模型得到的高频因 子与日频因子在沪深 300、中证 500、中证 1000 上的相关系数分别为 0.35、0.42、0.47, 相关性均不强,因此我们同时考虑日频因子和高频因子的合成(需注意,此处表格中的中 性化是指在得到最终因子值之后进行的中性化处理,与上文中作为输入的标签中性化无 关)。

可以看出,在沪深 300 这类大盘成分股中,高频因子的表现相对较差,各项指标均不如日 频因子。即使将高频因子与日频因子合成后,整体表现也会受到拖累。

在中证 500 这类中小盘股上,高频因子的表现有所改善,但仍未能超越日频因子。合成后 的因子总体表现与日频因子相当。

在中证 1000 这类小微盘成分股上,高频因子的表现相当出色,不仅在 IC 均值上超越了日 频因子,且合成后的 IC 均值达到了 15.74%。此外,合成后的因子在多空组合净值和分组 效果上也表现优异。因此,初步应用高频因子在小微盘股上显示出较高的有效性,而在大 中盘股上的应用方法仍需进一步探索。

六、特征工程优化的 GBDT+NN 指数增强策略

基于前述对机器学习模型特征选择、另类因子引入以及因子和标签中性化的测试结果,我 们整合了所有有效结论,重新训练模型并在沪深 300、中证 500 和中证 1000 这三种宽基 指数上进行测试。具体来说,对于神经网络类模型 TCN、GRU 和 Transformer,我们采用了 通过对 LightGBM 的 SHAP 解释方法筛选出 Alpha158 因子中的 64 个特征;而对于 GBDT 类 模型 XGBoost、LightGBM 和 CatBoost,我们则结合了 Alpha158 因子和基本面因子,并分 别使用进行了和未进行行业市值中性化的预测标签进行训练,进一步在单个模型内部进行 合成。最终,我们合成得到了神经网络类模型(NN)、梯度提升树类模型(GBDT)以及结 合了 GBDT 和 NN 特性的混合模型(GBDT+NN)。

6.1 因子测试结果

每个模型均采用 5 个随机种子取其均值作为最终结果,并为确保可交易性,将因子值向后 推一天。回测时间段为 2015 年 2 月 1 日至 2024 年 5 月 31 日,调仓频率为每月月初进行。 具体来说,

从结果可以看出,经过特征选择和标签中性化改进后 GBDT+NN 模型展现出优异的选股表 现。在进行行业和市值中性化处理后,模型的 IC 均值分别达到了 11.91%,多头策略下年 化超额收益率高达 22.92%,而超额回撤则控制在 6.56%。相较原始 GBDT+NN 模型,这些指 标表现出明显的提升,显示出特征工程优化的优越性。

可以看出,在中证 500 指数上,因子表现同样出色。两类模型合成后的因子 IC 均值达到 11.58%,多头策略的年化超额收益为 12.34%,而多头策略的最大超额回撤为 10.14%。尽 管这一表现相比于沪深 300 指数的收益水平和稳定性稍有下降,但整体仍然保持了较高的 表现和相对稳健的回撤控制能力,显示出在中证 500 环境下的良好适应性。

在中证 1000 成分股中,因子的表现尤为出色。两类模型合成后的因子 IC 均值高达 16.62%, 即便在进行行业市值中性化处理后,因子 IC 均值仍保持在 15.42%的高水平。在多头策略 方面,年化超额收益率达到令人瞩目的 25.39%,经过中性化调整后,因子收益率更是进一 步提升至 25.42%。此外,多头策略的最大超额回撤仅为 4.42%,展现出卓越的风险控制能 力。这些数据表明,在中证 1000 指数环境中,因子不仅具备强大的收益潜力,同时也能 有效控制回撤风险,表现极为优异。


(本文仅供参考,不代表我们的任何投资建议。如需使用相关信息,请参阅报告原文。)

相关报告