1. 课程导入
在量化研究、工程建模与科学发现中,我们经常面对同一类问题:给定一批输入变量与目标变量,希望找到一个既准确又能够被人理解的数学表达式。传统回归模型(如线性回归、岭回归、梯度提升树)擅长拟合,但它们的输出往往是一组系数或一棵难以复述的树;神经网络更强大,却几乎无法直接告诉我们“目标变量究竟由哪些变量、以什么形式组合而成”。符号回归(Symbolic Regression, SR)正是为解决这一矛盾而出现的建模范式。
一、符号回归的定义
符号回归是一种同时搜索函数结构与数值参数的回归方法。它不预设模型形式,而是在由变量、常数和算子构成的表达式空间中搜索,目标是找到一个表达式 f(x),使其在给定数据上误差足够小,同时表达式本身尽可能简洁、可解释。
与常规回归的差别可以用一句话概括:常规回归是“给定结构,求参数”;符号回归是“结构与参数一起求”。例如,面对房价数据,线性回归输出 y = 3.2x₁ + 1.7x₂ + b,而符号回归可能输出 y = (x₁ · x₂) / (x₃ + 1) 这样的非线性关系。后者不仅预测,还揭示了变量之间的交互与比例关系。
1. 搜索空间:由变量、常数、算子(+、−、×、÷、sin、exp、log 等)组成的表达式集合;
2. 评价函数:通常是最小化预测误差,并叠加复杂度惩罚;
3. 搜索策略:遗传编程、遗传算法、蒙特卡洛树搜索、强化学习、稀疏回归等。
二、因子搜索的意义
在量化投资、风险建模、推荐系统等场景中,“因子”指的是能够解释或预测目标变量的输入特征或其组合。因子搜索的目标,是从大量候选变量中找出真正有解释力、且组合方式合理的因子表达式。符号回归在这里的价值体现在三个层面:
- 发现非线性关系:很多真实规律并非线性,如动量与反转的交互、波动率的倒数效应,符号回归可以自动构造
rank(volume) / volatility这类组合因子。 - 提升可解释性:输出是显式公式,研究员可以审查其经济含义,而不是面对黑箱。
- 控制过拟合:通过复杂度约束,避免搜索出只在训练集上表现好、逻辑上却荒谬的表达式。
下面是一个典型的因子搜索配置片段,展示了搜索空间与复杂度惩罚的基本参数:
search_space:
variables: [ret_1d, ret_5d, volume, turnover, volatility]
operators: [+, -, *, /, rank, ts_mean, ts_std]
max_depth: 4
max_terms: 6
objective:
metric: ic
complexity_penalty: 0.002
parsimony_pressure: true
这段配置说明:搜索并非无限制展开,而是在深度、项数和惩罚系数共同约束下进行。因子搜索的意义,不只是“找到公式”,而是“找到在统计上稳健、在逻辑上可被接受的公式”。
三、复杂度控制的必要性
符号回归最大的风险是表达式膨胀。随着搜索深度增加,候选表达式数量呈指数增长,算法很容易找到在训练集上误差极低、但包含大量冗余项和嵌套算子的公式。这类公式往往:
- 在样本外表现急剧下降;
- 难以解释,失去符号回归的核心优势;
- 计算成本高,难以部署到实时系统。
因此,复杂度控制不是可选项,而是符号回归能否落地的关键。常见控制手段包括:限制树深度、限制算子数量、对表达式长度施加惩罚、使用交叉验证选择复杂度、以及引入领域约束(如禁止某些算子组合)。
四、整体课程框架与学习目标
本课程共 30 章,围绕“符号回归因子搜索”与“复杂度控制”两条主线展开。整体框架可分为四个阶段:
| 阶段 | 核心内容 | 学习目标 |
|---|---|---|
| 基础篇 | 符号回归原理、搜索空间、评价指标 | 理解 SR 与常规回归的区别,能定义搜索问题 |
| 方法篇 | 遗传编程、稀疏回归、强化学习搜索 | 掌握主流搜索算法并能配置参数 |
| 控制篇 | 复杂度度量、惩罚项、交叉验证、领域约束 | 能设计复杂度控制策略,平衡精度与简洁 |
| 实战篇 | 因子挖掘、回测、稳健性检验、复盘 | 能独立完成从搜索到评估的完整流程 |
学习目标可以归纳为三点:第一,能够用符号回归的语言描述一个因子搜索问题;第二,能够选择合适的搜索策略与复杂度控制方法;第三,能够对搜索结果进行解释、验证与复盘,而不是盲目接受高误差拟合的公式。