Evolutionary Feature Engineering for Structured Data¶
会议: NeurIPS 2026
arXiv: 2607.01548
OpenReview: https://openreview.net/forum?id=hz6wl9NrRG
代码: https://github.com/egetaga/EFE
领域: 其他
关键词: 特征工程, 进化优化, 大语言模型, 时间序列预测, 表格预测
一句话总结¶
提出了结构化数据进化特征工程框架(EFE),利用大语言模型作为变异算子联合下游性能反馈进化可执行 Python 预处理程序,在时间序列预测(EFE-Time)中发现可逆归一化并显著提升 Chronos-2 等基础模型,在表格预测(EFE-Tab)中进化出兼顾高 AUC 与低复杂度的紧凑特征程序。
研究背景与动机¶
特征工程的核心直觉在于:若能将输入数据转化为更利于建模的表示形式,下游预测模型本身无需改变即可大幅提升表现。在时间序列预测中,合适的归一化或去趋势操作能够降低非平稳性与尺度漂移,使基础模型更容易进行未来外推;在表格预测中,特征间的比率、交互、阈值划分与聚合则能让决策树等传统轻量模型展现出强劲的表达能力。然而,这类转换规则通常极度依赖特定数据集的统计特性、下游模型的感知偏置以及复杂的模式分布,固定规则库或人工试错难以预先全面覆盖。
大语言模型(LLM)的兴起使得在开放代码空间中搜索可执行的特征处理程序成为可能。尽管已有工作(如 CAAFE、LLM-FE 等)尝试利用 LLM 上下文生成表格特征,但现有方法通常缺乏对程序状态与可逆变换的系统性建模,未能拓展到需要显式反变换的时间序列基础模型(TSFM)归一化任务中;同时在表格场景下,过往方法容易生成庞大冗余的特征集,破坏下游简单模型的计算效率与内在可解释性。
本文的核心 idea 是将结构化数据特征工程形式化为带有严格状态拟合与下游验证反馈的 Python 程序级进化搜索,针对时间序列演化出针对特定数据集的显式可逆归一化程序(EFE-Time),针对表格数据演化出权衡验证集增益与特征增删复杂度的紧凑特征程序(EFE-Tab)。
方法详解¶
整体框架¶
EFE 框架将数据预处理视为在可执行 Python 程序空间 \(\mathcal{P}_{\text{valid}}\) 内的序列进化搜索。每个候选程序统一实现标准的 fit、transform 以及后续后处理接口。在整个进化循环中,下游预测模型(如 Chronos-2 或 TabPFN/决策树)的架构、参数与训练协议保持绝对冻结,LLM 仅充当变异算子,基于父代代码、数据集统计上下文、历史评估反馈生成新的候选程序,下游验证集表现则构成适应度选择信号。
在时间序列预测分支(EFE-Time),后处理映射特化为显式反变换 inverse_transform,模型在由 transform 投影后的平稳/正规化空间中预测,最终由 inverse_transform 将未来预测映射回原始目标尺度;在表格预测分支(EFE-Tab),程序学习基于训练折状态的特征衍生与冗余特征剔除,并通过显式惩罚项压制特征数量膨胀。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["输入数据与数据集统计上下文"] --> B["基于上下文与历史反馈的变异生成"]
B --> C["有效性与数据泄漏检验"]
C -->|检验通过| D["状态拟合与特征转换"]
D --> E["下游冻结模型评估与逆映射"]
E --> F["复杂度加权适应度反馈与种群更新"]
F -->|多轮进化| G["最优预处理程序输出"]
关键设计¶
1. 基于上下文与历史反馈的变异生成:引导 LLM 在受限空间中探索有效变换
直接依靠无约束的 LLM 生成代码容易产生语法错误、数据泄漏或无法反解的死循环。变异生成机制依托 OpenEvolve 框架维护多岛种群与基于代码多样性的 MAP-Elites 归档。在每次迭代中,提示词生成器向骨干 LLM(如 Claude-Opus-4.6)注入当前父代程序、高适应度典范代码、固定自训练集的数据集元数据与统计特征(如序列长度、季节周期、偏度、缺失率、特征相关性),以及前序迭代的详细评估摘要(包括基线比率、耗时与报错诊断)。LLM 结合这些定量反馈与错误日志输出完整重写的候选程序代码,实现了目标驱动的定向探索。
2. 有效性与数据泄漏检验:确保评估安全与接口确定性
生成的候选代码在接入下游模型前必须通过多重静态与动态断言。对于 EFE-Time,校验网关强制程序必须实现 fit、transform 和 inverse_transform 方法,严格要求前向与反向变换保持时间序列长度、时间顺序和 NaN 位置不变,杜绝引入无穷大值或将非常数序列坍缩为常数,并验证其在任意预测步长 \(H\) 上均具备良定义的反向映射能力;对于 EFE-Tab,网关核验程序是否返回对齐的 DataFrame、避免对原始输入发生就地修改(in-place mutation),并强制目标依赖型操作(如目标编码)只能在拟合折中计算统计量,严禁跨折发生标签泄漏。未通过检验的代码直接赋予极低适应度并记录错误供后续迭代修正。
3. 状态拟合与特征转换:标准化的两阶段状态隔离
为防止评估阶段的数据泄漏,每个合法候选程序 \(p\) 将执行逻辑解耦为带状态拟合的 \(\mathrm{fit}_p\) 与纯输入变换的 \(\mathrm{transform}_p\)。在时间序列实例 \(j\) 中,程序仅基于观测历史序列 \(D_j^{\mathrm{fit}} = y_{1:t}^{(i)}\) 提取近期滑动窗口统计量、季节分量或鲁棒尺度参数并存入状态字典 \(\sigma_{j,p}\)(必须包含 \(hist\_len\) 以供预测步位姿对齐),随后利用 \(\sigma_{j,p}\) 将输入历史映射至平稳空间 \(\widetilde{D}_{j,p} = z_{1:t}^{(i)}\)。在表格预测中,候选程序仅在训练池(Pool A)拟合编码字典与特征衍生统计量 \(\sigma_{j,p}\),并在评估池(Pool B)中严格复用该状态实施相同的列生成或剔除操作。
4. 下游冻结模型评估与逆映射:以端到端任务增益作为选择驱动
下游模型在转换后的表征上执行前向推理,评估管线负责逆映射还原及与基线对比。在时间序列任务中,冻结的预测器 \(F_\theta\) 接收标准化序列输出预测 \(\widehat{z}_{t+1:t+H}^{(i)}\),随后调用后处理映射还原到真实量纲:
$\(\widehat{y}_{t+1:t+H}^{(i)} = \mathrm{inverse\_transform}_p\left(\widehat{z}_{t+1:t+H}^{(i)}; \sigma_{j,p}\right)\)$
对于时间序列预测,选择损失使用相对于恒等变换程序 \(p_{\mathrm{id}}\) 的相对 MASE 改进率结合运行时间惩罚项 \(\tau(p)\):
$\(s_{\mathrm{time}}(p) = \left(1 - \frac{\mathrm{MASE}(p)}{\mathrm{MASE}(p_{\mathrm{id}})} - \lambda^{\mathrm{time}}_{\tau}\tau(p)\right)\mathbf{1}\{p \in \mathcal{P}_{\mathrm{inv}}\}\)$
而在表格二分类任务中,模型在 Pool A 上拟合并在 Pool B 上评测 ROC-AUC,目标函数采用平均 AUC 增益结合特征冗余度惩罚:
$\(s_{\mathrm{tab}}(p) = \bar{\delta}(p) - \lambda_{f}\sqrt{\frac{k(p)}{n}} - \lambda^{\mathrm{tab}}_{\tau}\tau(p)\)$
其中 \(k(p)\) 显式计入新增生成特征数与丢弃原始特征数,促使进化过程更倾向于发现能以最小特征维度换取最大增益的紧凑程序。
一个完整示例¶
以 CovidDeaths 数据集上的 EFE-Time 进化为例,原始数据包含强烈的非平稳增长趋势与剧烈的局部波动:
1. 第 0 轮(恒等种子):程序直接透传序列,基线 Chronos-2 在陡峭上升趋势下预测严重低估,综合适应度为基准 0.5002。
2. 第 33、66 轮(探索失败):LLM 尝试设计非线性幂变换与激进差分,但在逆映射时出现数值溢出与极端分位数发散,适应度归零并记录报错信息。
3. 第 99 轮(突破性突变):LLM 吸收历史反馈后提出鲁棒仿射变换,基于历史序列尾部的近期中位数与四分位距缩放,预测序列转入平稳空间外推并成功逆映射,恢复至正常性能(得分 0.4988)。
4. 第 24、30 轮(精细化分支):在核心仿射变换基础上引入常数序列守卫、Winsorization 截断与极端值缓冲,最终综合评分飙升至 0.9936,相对基线 MASE 降低 10.1%,WQL 降低 19.5%。
实验关键数据¶
主实验¶
主实验在时间序列预测基准 GIFT-Eval(包含 10 个跨领域真实数据集,下游使用 Chronos-2)以及表格分类基准 TabArena(9 个二分类数据集,评估单决策树)上展开测试。
时间序列预测中,EFE-Time 在 10 个数据集上均取得显著增益,平均降低各类误差 3% 以上:
| 数据集 | 指标 | 本文 (EFE-Time) | 之前SOTA (Chronos-2 无FE基线) | 提升幅度 (%) |
|---|---|---|---|---|
| CovidDeaths | MASE ↓ | 31.853 ± 0.835 | 35.444 | +10.1 ± 2.3% |
| CovidDeaths | WQL ↓ | 0.032 ± 0.003 | 0.039 | +19.5 ± 8.7% |
| CovidDeaths | MAE ↓ | 102.830 ± 13.968 | 124.241 | +17.2 ± 11.2% |
| SolarHourly | MASE ↓ | 0.915 ± 0.049 | 0.996 | +8.1 ± 4.9% |
| SolarHourly | WQL ↓ | 0.335 ± 0.002 | 0.352 | +4.7 ± 0.7% |
| M4Yearly | MASE ↓ | 3.183 ± 0.135 | 3.370 | +5.6 ± 3.9% |
| JenaWeather (H) | MASE ↓ | 0.538 ± 0.004 | 0.547 | +1.6 ± 0.6% |
| kdd_cup_2018_H | MASE ↓ | 0.971 ± 0.004 | 0.999 | +2.8 ± 0.4% |
| 10数据集平均 | MASE / WQL / MAE | – | – | +3.0% / +3.6% / +3.7% |
在单决策树(Decision Tree)表格分类任务中,EFE-Tab 与主流基线(无特征工程 No FE、CAAFE、LLM-FE)的 ROC-AUC 对比如下:
| 数据集 | No FE (基线) | CAAFE | LLM-FE | 本文 (EFE-Tab) |
|---|---|---|---|---|
| Churn | 0.8944 ± 0.0178 | 0.9239 ± 0.0181 | 0.9080 ± 0.0213 | 0.9266 ± 0.0108 |
| HRAnalyticsJobChange | 0.7898 ± 0.0069 | 0.7864 ± 0.0093 | 0.7914 ± 0.0065 | 0.7923 ± 0.0041 |
| E-CommerceShippingData | 0.7417 ± 0.0037 | 0.7441 ± 0.0034 | 0.7433 ± 0.0032 | 0.7448 ± 0.0035 |
| in_vehicle_coupon_recommendation | 0.7296 ± 0.0140 | 0.7285 ± 0.0124 | 0.6720 ± 0.1042 | 0.7473 ± 0.0134 |
| online_shoppers_intention | 0.9235 ± 0.0068 | 0.9242 ± 0.0041 | 0.9382 ± 0.0133 | 0.9235 ± 0.0040 |
| Bank_Customer_Churn | 0.8340 ± 0.0035 | 0.8409 ± 0.0077 | 0.8502 ± 0.0096 | 0.8434 ± 0.0040 |
| BankMarketing | 0.7329 ± 0.0056 | 0.7339 ± 0.0055 | 0.7345 ± 0.0048 | 0.7348 ± 0.0064 |
| Diabetes | 0.7974 ± 0.0185 | 0.7852 ± 0.0473 | 0.7909 ± 0.0112 | 0.8136 ± 0.0082 |
| Fitness_Club | 0.8042 ± 0.0118 | 0.7943 ± 0.0071 | 0.7971 ± 0.0105 | 0.8048 ± 0.0128 |
| 平均排名 (Mean Rank ↓) | 3.17 | 3.00 | 2.44 | 1.39 |
消融实验¶
针对 EFE-Time 跨模型迁移性以及与微调(Fine-tuning)互补性的分析消融如下:
| 配置 / 评估设定 | 迁移/结合指标 | 说明与表现 |
|---|---|---|
| Chronos-2 进化程序直接迁移至 TimesFM-2.5 | 跨模型平均 MASE 提升 | 保持原程序不变下全基准 MASE 提升 +2.2%,前三数据集提升达 +7.0% |
| Chronos-2 进化程序直接迁移至 Moirai-2-Small | 跨模型平均 MASE 提升 | 全基准 MASE 提升 +2.2%,前三数据集平均提升 +6.0% |
| Chronos-2 进化程序直接迁移至 Reverso-Nano | 跨模型平均 MASE 提升 | 轻量化模型全基准 MASE 提升 +2.4%,WQL 提升达 +3.9% |
| 仅模型微调 (Fine-tuning only) | Chronos-2 相对基线增益 | 在高收益数据集上表现弱于 EFE-Time,在全集 MASE 上略低于 EFE-Time |
| 仅特征转换 (EFE-Time only) | Chronos-2 相对基线增益 | 全集 MASE 提升高于微调,但在部分数据集的微小波动上受限 |
| EFE-Time + 微调 (EFE-T. + F.T.) | Chronos-2 相对基线增益 | 两技术表现出显著的正交叠加性,在所有指标上均超越单独使用任一方案 |
关键发现¶
- 归一化与微调具备互补叠加效应:先通过 EFE-Time 学习针对数据集的平稳可逆转换,再在转换后的特征空间中微调基础模型,能够取得超越两者的累加性能增益,证明表征转换解决的是基础动力学复杂度而非单纯拟合能力。
- 可逆归一化的跨架构通用性:利用 Chronos-2 搜索出的归一化逻辑,直接外推至架构与预训练数据迥异的 TimesFM、Moirai 与轻量级 Reverso 依然全面取得 2%~7% 的误差削减,表明该变换捕捉到了数据内在的统计动力学瓶颈,而非模型过拟合偏差。
- 小样本与浅层决策树获益最为剧烈:在表格任务中,EFE-Tab 生成的高价值特征使深度仅为 3 的决策树超过了深层未工程化基线;而在极小样本场景下,TabPFN 的提升最为突出,随着样本量增长冗余特征容忍度提升,两者的差距逐步收敛。
亮点与洞察¶
- 将预处理程序代码作为进化搜索对象:摆脱了传统启发式调参或纯固定算子图的束缚,利用 Python 丰富语言生态与 LLM 代码常识实现任意非线性、带状态、自适应分段与边界守卫的复杂变换。
- 可逆时间序列归一化范式:首次将 LLM 进化拓展至具有显式
inverse_transform的时间序列自适应归一化,攻克了基础模型在指数趋势、周期突变等极端动态下严重失效的痛点。 - 带复杂度惩罚的特征进化:在表格任务中引入以特征增删量为代价的适应度正则,在不破坏轻量级模型解释性的同时大幅强化了经典单决策树的判决表现。
局限与展望¶
- 进化搜索超参数缺乏动态自适应:当前探索-利用比例、进化岛数量等超参数在搜索全程保持固定,未能根据搜索收敛状态实施动态退火调节。
- 对骨干 LLM 的推理与代码能力依赖极高:附录针对 Qwen3.5 小尺寸模型的评估表明,弱模型在生成带严格数学逆变换的成套流水线时容易产生退化甚至分位数校准崩溃,在开源轻量模型上的鲁棒部署仍待深化。
- 评估反馈组件的消融仍待细化:目前缺乏对提示词中各类统计信息与反馈诊断项的精细消融,各模块在引导 LLM 修正错误中的具体权重大有探究空间。
相关工作与启发¶
- vs CAAFE: CAAFE 依靠数据集语义描述让 LLM 逐个贪心追加表格特征;本文 EFE 采用多岛进化搜索维护种群多样性,支持整套特征程序的批量进化与冗余列剪枝,并原生支持时间序列的可逆转换。
- vs LLM-FE: LLM-FE 采用 FunSearch 机制优化单一表格变换函数,缺少对训练集持久化状态的隔离;本文 EFE 采用 AlphaEvolve 级别的完整状态类(fit/transform/inverse_transform)建模,能够实现无泄漏的时间序列状态对齐与反向投影。
- vs ELATE: ELATE 探索了利用进化 LLM 生成时间序列协变量特征,但不具备显式可逆归一化能力且代码未开源;本文首次系统论证了自适应可逆归一化对冻结基础模型的普适增益。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 首次提出面向结构化数据且兼顾时间序列显式可逆变换与表格紧凑剪枝的 LLM 进化特征工程范式。
- 实验充分度: ⭐⭐⭐⭐⭐ 涵盖 10 个真实时序数据集、9 个表格基准、4 类时序基础模型迁移、微调正交性及小模型容量扫描,论证严密详实。
- 写作质量: ⭐⭐⭐⭐⭐ 结构清晰规范,数学建模与代码接口抽象统一,实验洞察深刻。
- 价值: ⭐⭐⭐⭐⭐ 为解决结构化数据输入表征与大模型适配难题开辟了切实可行的自适应预处理新路径。