第 8 章 · 01 遗传规划自动因子挖掘


文档摘要

第 8 章 · 01 遗传规划自动因子挖掘 本节摘要:本节讲因子挖掘新范式的第一种——遗传规划(Genetic Programming,GP)。前几章的因子都是人手工构造,耗时且受限于想象力。遗传规划借鉴生物进化,把因子表示为公式树(由算子、变量、常数组合而成),通过交叉(组合两个公式的部分)、变异(随机改动公式)、选择(按适应度筛选)的迭代过程,自动演化出大量候选因子,用适应度(通常是 IC)筛选出有效的。华泰 AI 系列第 21 篇首次把遗传规划用于选股因子挖掘,第 23 篇进一步优化。遗传规划的优势是「自动 + 可解释」——生成的因子是显式公式,人能读懂;劣势是过拟合风险极高(搜索空间巨大,容易找到「恰好拟合历史」的伪因子),必须严格控制。

第 8 章 · 01 遗传规划自动因子挖掘

本节摘要:本节讲因子挖掘新范式的第一种——遗传规划(Genetic Programming,GP)。前几章的因子都是人手工构造,耗时且受限于想象力。遗传规划借鉴生物进化,把因子表示为公式树(由算子、变量、常数组合而成),通过交叉(组合两个公式的部分)、变异(随机改动公式)、选择(按适应度筛选)的迭代过程,自动演化出大量候选因子,用适应度(通常是 IC)筛选出有效的。华泰 AI 系列第 21 篇首次把遗传规划用于选股因子挖掘,第 23 篇进一步优化。遗传规划的优势是「自动 + 可解释」——生成的因子是显式公式,人能读懂;劣势是过拟合风险极高(搜索空间巨大,容易找到「恰好拟合历史」的伪因子),必须严格控制。本节讲清遗传规划的进化机制、公式树表示、交叉变异、适应度设计、过拟合控制,为后续 CTA 信号挖掘打底。

内容来源:仓库研报 华泰 AI 系列第 21 篇(遗传规划选股因子)、第 23 篇(再探遗传规划),知识结构化整理。

⚠️ 学习提示:遗传规划是过拟合的「重灾区」——它能搜索天文数字的公式组合,几乎一定能找到「历史 IC 高」的伪因子。学本节时,务必把「过拟合控制」当作核心,而非「怎么搜出高 IC 因子」。后者不难,难的是搜出的因子在样本外仍有效。

学习目标

阅读完本节,你应当能够:

  1. 说清遗传规划的进化机制(选择/交叉/变异)与生物类比。
  2. 理解因子的公式树表示(算子/变量/常数)。
  3. 描述交叉与变异如何产生新公式。
  4. 解释适应度(IC)的设计与选择机制。
  5. 掌握过拟合控制的多种手段(样本外/复杂度惩罚/多样性)。

一、为什么需要遗传规划:人手工挖因子的瓶颈

传统因子挖掘依赖研究员的「灵光一现」——基于经济逻辑或经验,手工构造因子(如「过去 20 日收益率」「量价相关」),再测试筛选。这条路有几个瓶颈:

  • 想象力受限:人能想到的因子形态有限,难以系统探索「多个变量 + 多个算子」的组合空间。
  • 效率低:构造一个因子、测试、筛选、迭代,周期长,人力成本高。
  • 难以发现反直觉因子:有些有效因子形态复杂或反直觉,人想不到。

遗传规划的目标就是自动化这个过程:把因子表示为可组合的公式,让算法自动搜索「哪些算子组合哪些变量能产生高 IC 因子」。它不是替代人的经济逻辑,而是在人定义的算子与变量空间内,高效穷举与优化。华泰 AI 21/23 把它系统用于选股,证明了「自动挖因子」的可行性。

二、进化算法的基本思想:借鉴生物进化

遗传规划是进化算法(Evolutionary Algorithm)的一种,核心思想借鉴生物进化:

  1. 初始化:随机生成一批「个体」(因子公式),构成初始种群。
  2. 适应度评估:用某个指标(如 IC)评估每个个体的「好坏」。
  3. 选择:适应度高的个体更可能被「保留」并繁殖。
  4. 交叉:两个父代个体的部分组合,产生子代(类似基因重组)。
  5. 变异:随机改动个体(类似基因突变)。
  6. 迭代:用子代替换部分父代,重复 2-5,直到满足停止条件(代数或适应度收敛)。

经过多代进化,种群的平均适应度提升,最终出现高适应度的「优秀因子」。这与生物「适者生存」的过程同构。

三、因子的公式树表示

遗传规划把因子表示为公式树(expression tree)——一种树形结构,叶子节点是变量或常数,内部节点是算子。

例如,因子「过去 5 天收益率」的公式树:

return ← 算子(根) / \ close 5 ← 变量(收盘价)与常数(窗口)

更复杂的因子「(成交量变化率) × (过去 10 天波动率)」:

multiply / \ divide stddev / \ / \ volume delta volume 10

公式树的组成部分:

组成 说明 例子
变量 原始数据 close(收盘价)、volume(成交量)、high、low
算子 对变量的运算 return、stddev、mean、correlation、add、multiply
常数 数值参数 5、10、20(窗口)、0.5(权重)

算子分两类:

  • 时序算子:在时间维度上运算,需指定窗口。如 return(close, 5)、stddev(close, 10)、mean(volume, 20)。
  • 截面算子:在截面(同一时间所有股票)上运算。如 rank(因子值)、industry_neutral(行业中性化)。
  • 二元/多元算子:组合两个因子。如 add(因子A, 因子B)、multiply、divide、max、min。

通过这些算子与变量的组合,可以表示极其丰富的因子形态——这正是遗传规划搜索的空间。

💡 核心心法:遗传规划的效果,极大程度上取决于算子集与变量集的设计。算子太少,搜索空间受限,挖不出好因子;算子太多,搜索空间爆炸,易过拟合。华泰 21/23 在算子集设计上做了大量工程,这是实战的关键。

四、交叉与变异:产生新公式

遗传规划通过两种操作产生新公式:

交叉(Crossover)

选两个父代公式树,各自随机选一个子树,交换,产生两个子代。例如:

  • 父代 A:add(return(close,5), stddev(volume,10))
  • 父代 B:multiply(mean(close,20), rank(high))
  • 交换 A 的 return(close,5) 与 B 的 mean(close,20):
    • 子代 1:add(mean(close,20), stddev(volume,10))
    • 子代 2:multiply(return(close,5), rank(high))

交叉本质是「基因重组」——把两个有效因子的部分组合,可能产生更好的因子。

变异(Mutation)

随机选一个公式树的节点,替换为新生成的子树(随机算子+变量+常数)。例如:

  • 原公式:return(close,5)
  • 把常数 5 变异为 10:return(close,10)
  • 或把变量 close 变异为 high:return(high,5)
  • 或整棵子树重新生成:stddev(volume,20)

变异引入新的「基因」,防止种群陷入局部最优(所有公式越来越像,搜不到新形态)。

五、适应度与选择:用 IC 筛选

适应度函数(fitness function)衡量因子的好坏,遗传规划据此选择。选股因子挖掘中,适应度通常是:

  • IC(信息系数):因子值与未来收益的相关性。最常用。
  • ICIR(IC 的信息比率):IC 的均值 / IC 的标准差,衡量稳定性。
  • 分层回测收益:多头组合的超额收益。
  • 单调性:分组收益的单调程度。

选择机制:适应度高的个体更可能被选为父代。常用方法:

  • 锦标赛选择:随机抽 k 个个体,选适应度最高的。
  • 轮盘赌:按适应度占比分配选择概率。
  • 精英保留:每代直接保留适应度最高的若干个体,不参与交叉变异。

华泰 21 主要用 IC 作为适应度,结合样本外验证防止过拟合。

六、过拟合控制:遗传规划的核心难题

遗传规划的最大风险是过拟合——搜索空间巨大,几乎一定能找到「历史 IC 高但样本外失效」的伪因子。华泰 23 重点讨论了多种控制手段:

手段 1:严格的样本外检验

把数据分为训练集(用于适应度评估)与样本外集(不参与进化,只做最终验证)。只有训练集 IC 高且样本外 IC 仍显著的因子才被采纳。

手段 2:时序交叉验证

参见华泰 AI 14/16。用多个不同的训练-验证时间窗口,只选在所有窗口都稳定的因子,避免对单段历史的过拟合。

手段 3:复杂度惩罚

因子公式越复杂(树越深、节点越多),过拟合风险越高。在适应度里加复杂度惩罚(类似正则化),倾向简单因子。

手段 4:多样性维护

防止种群「趋同」(所有公式都很像),保持公式形态的多样性,避免搜到的都是同一类伪信号。常用「适应度共享」或限制相似个体的数量。

手段 5:稳健算子与变量

只提供「经济逻辑合理」的算子与变量,避免算法钻牛角尖(如用无意义的常数拟合噪声)。

⚠️ 学习提示:这五种手段要组合使用,任何单一手段都不够。尤其样本外检验与时序交叉验证是底线,没有这两个,遗传规划挖出的因子几乎一定是过拟合。华泰 23 的核心贡献就是系统化这套防过拟合流程。

七、华泰 AI 21/23 的实证与发现

华泰 21 首次把遗传规划用于选股因子挖掘,主要发现:

  1. 能挖出有效因子:在量价数据上,遗传规划挖出的因子,样本外 IC 显著,部分与人工因子低相关,有边际价值。
  2. 可解释:挖出的因子是显式公式,人能读懂并理解经济含义(这点优于神经网络)。
  3. 过拟合可控但难:配合严格的样本外与时序交叉,过拟合能控制,但需大量工程。

华泰 23(再探遗传规划)进一步优化:

  • 算子集扩展:加入更多时序与截面算子,丰富搜索空间。
  • 适应度改进:用 ICIR 等更稳健的指标。
  • 并行加速:遗传规划计算量大,用 GPU/集群并行。
  • 过拟合控制强化:更严格的样本外与多样性维护。

八、遗传规划的优势与局限

优势:

  • 自动化:大幅减少人工,能探索人想不到的组合。
  • 可解释:挖出的是显式公式,人能理解与审计。
  • 灵活性:算子与变量可自由扩展,适应不同数据。

局限:

  • 过拟合风险极高:搜索空间巨大,易找伪因子。
  • 计算量大:多代进化 × 大种群 × 适应度评估(每次都要算全市场 IC),成本高。
  • 算子集敏感:效果强依赖算子设计,设计不当效果差。
  • 难以捕捉超复杂模式:公式树本质是符号运算,难以表达神经网络那种超高维非线性。

💡 定位心法:遗传规划适合挖「中等复杂度、可解释、与人工因子互补」的因子。它不适合替代深度学习(后者能学更复杂模式),也不如人工因子有强经济逻辑。它是因子库的有益补充,而非银弹。

本节要点回顾

  1. 动机:人手工挖因子受限想象力与效率,遗传规划自动化探索算子×变量的组合空间。
  2. 进化机制:初始化种群 → 适应度评估 → 选择 → 交叉/变异 → 新种群 → 迭代,借鉴生物进化。
  3. 公式树表示:叶子是变量/常数,内部是算子(时序/截面/二元);算子集设计是关键。
  4. 交叉:交换两父代的子树,产生新组合(基因重组)。
  5. 变异:随机替换节点/子树,引入新基因,防局部最优。
  6. 适应度:常用 IC 或 ICIR;选择机制有锦标赛、轮盘赌、精英保留。
  7. 过拟合控制(核心):样本外检验、时序交叉验证、复杂度惩罚、多样性维护、稳健算子——五管齐下。
  8. 华泰 21/23:证明遗传规划能挖出有效且可解释因子,但过拟合控制需大量工程。
  9. 优势与局限:自动+可解释+灵活 vs 过拟合风险+计算量大+算子敏感+难捕超复杂模式;定位为因子库补充。

下一节,我们看遗传规划的另一应用——CTA 信号挖掘,把同样的进化算法用于商品/期货的趋势交易信号,与选股挖掘有何差异。


发布者: 作者: 灏天文库 转发
评论区 (0)
U