2. 符号回归基础
符号回归(Symbolic Regression)是一类从数据中自动发现数学表达式的建模方法。与常见机器学习模型不同,它不预设固定的函数形式,而是同时搜索表达式结构与参数。理解它与线性回归、决策树的区别,是掌握符号回归因子搜索与复杂度控制的第一步。
2.1 与线性回归、决策树的核心区别
线性回归假设输出是输入特征的线性组合,模型形式固定为 y = w₀ + w₁x₁ + ... + wₙxₙ,训练过程主要是估计权重。它的优势是解释性强、求解稳定,但无法自动捕捉乘法、除法、三角函数、指数等非线性结构。决策树通过一系列阈值划分特征空间,能拟合复杂非线性关系,但其输出是分段常数或分段线性,难以表达紧凑的解析公式,且对连续变化的外推能力较弱。
符号回归则把模型表示为一棵表达式树,叶节点是变量或常数,内部节点是运算符。它搜索的是“公式本身”,因此可能发现 F = m·a、E = ½mv² 这类简洁物理规律。代价是搜索空间巨大、计算成本高,且需要显式控制复杂度以避免过拟合。
| 维度 | 线性回归 | 决策树 | 符号回归 |
|---|---|---|---|
| 模型形式 | 固定线性组合 | 阈值分裂的树结构 | 可变的表达式树 |
| 非线性能力 | 弱,需人工构造特征 | 强,但分段表达 | 强,可表达解析公式 |
| 可解释性 | 高,系数直接可读 | 中,规则路径可读 | 高,公式本身可读 |
| 外推能力 | 依赖线性假设 | 较弱 | 取决于发现的公式 |
| 复杂度控制 | 正则化、特征选择 | 剪枝、最大深度 | 树规模、运算符惩罚 |
2.2 表达式树表示
符号回归的核心数据结构是表达式树。以公式 (x₁ + x₂) × sin(x₁) 为例,根节点是乘法,左子树是加法,右子树是正弦函数。叶节点包括变量 x₁、x₂ 和常数。树的规模、深度和运算符集合共同决定了搜索空间与模型复杂度。
表达式树天然支持递归求值:后序遍历即可计算输出。它也便于遗传编程中的交叉与变异操作——交换子树、替换节点、修改常数。复杂度控制通常直接作用于树:限制最大深度、最大节点数,或对节点数量施加惩罚项。
表达式树示例:(x1 + x2) * sin(x1)
*
/ \
+ sin
/ \ |
x1 x2 x1
后序遍历求值顺序:
x1, x2, +, x1, sin, *
2.3 遗传编程基本流程
遗传编程(Genetic Programming, GP)是符号回归最经典的搜索方法。它维护一个表达式树种群,通过选择、交叉、变异和精英保留迭代进化。基本流程如下:
- 初始化种群:随机生成一批表达式树,控制初始深度和节点数。
- 适应度评估:对每个个体计算预测误差,常用均方误差或决定系数,并加入复杂度惩罚。
- 选择:按适应度选择父代,常用锦标赛选择或轮盘赌选择。
- 交叉:交换两个父代的随机子树,产生新个体。
- 变异:随机替换节点、修改常数或调整子树。
- 精英保留:保留最优个体,防止退化。
- 终止判断:达到最大代数、误差阈值或时间限制后输出最优表达式。
适应度函数示例:
fitness = MSE(y, y_pred) + α * tree_size
其中:
MSE : 均方误差
tree_size: 表达式树节点数
α : 复杂度惩罚系数
2.4 常见应用场景与误区复盘
符号回归适合以下场景:从实验数据中发现物理定律或经验公式;金融因子挖掘中寻找可解释的非线性组合;工程建模中替代黑箱模型;生物医学中推断变量间的解析关系。它的价值在于输出人类可读的公式,而不仅是预测值。
常见误区包括:盲目追求低误差而忽略公式复杂度,导致过拟合;运算符集合过大,搜索空间爆炸;未对常数进行优化,公式精度不足;把符号回归当作通用黑箱,忽视领域约束。复盘时应优先检查公式是否简洁、是否可解释、是否在验证集上稳定。
总结来看,符号回归与线性回归、决策树的最大差异在于:它搜索的是表达式结构本身。表达式树是其表示基础,遗传编程是其经典搜索流程,而复杂度控制贯穿始终。掌握这些基础,才能进入后续的因子搜索与复杂度控制策略。