树模型论文分享
OCTree 论文全文(中文翻译)
论文标题:基于大模型与决策树推理的表格数据优化特征生成arXiv:2406.08527v2 [cs.LG] 2024‑11‑18 作者:Jaehyun Nam、Kyuyoung Kim、Seunghyuk Oh、Jihoon Tack、Jaehyung Kim、Jinwoo Shin 机构:韩国科学技术院 KAIST,延世大学 会议:NeurIPS 2024 代码仓库:https://github.com/jaehyun513/OCTree
摘要
在表格预测任务中,结合自动特征工程的树基模型,性能往往优于依赖表征学习的深度学习方法。这类特征工程技术虽然效果不错,但通常依赖预先定义的搜索空间,并且主要依靠验证集指标完成特征筛选,因此丢失了过往实验中大量有价值的信息。 针对上述缺陷,本文提出一套全新表格学习框架OCTree(Optimizing Column feature generator with decision Tree reasoning,基于决策树推理的优化列特征生成器),该框架使用大语言模型 LLM 完成特征工程。核心思路:利用 LLM 的推理能力挖掘有效的特征生成规则,无需人工指定搜索空间;同时把历史实验的信息以自然语言推理形式作为反馈,迭代改进生成规则。 我们借助决策树传递推理信息 —— 决策树可以简单转换为自然语言,能够把历史实验的知识(生成特征对模型性能的影响)高效传递给大模型。 大量实验证明:OCTree 能够持续提升多种预测模型在不同基准数据集上的效果,性能超过其他自动特征工程方法。
1 引言
深度学习能够在图像、NLP 等领域取得成功,关键在于可以从原始数据学习有效表征。但是在表格数据领域,深度学习模型效果往往不尽如人意。例如,直接使用原始列特征的树基模型(XGBoost 等),在分类、回归这类表格预测任务上,经常比深度学习表现更好。因此实际项目中,从业者大多选择树模型搭配手工特征工程(例如两列特征相乘构造新特征)。
即便拥有领域知识,想要构造合适的特征依然困难且成本高昂。候选特征组合呈指数级爆炸,不可能全部手工验证。现有自动特征工程方法会使用过滤筛选机制自动评估、挑选有效特征,减少人工工作量,但依然存在明显短板:
- 很难界定什么样的特征是有效特征,因此依然需要人工定义候选特征搜索空间;随着特征数量、搜索空间复杂度提升,验证候选特征的计算开销巨大。
- 仅仅依靠验证集分数筛选特征,没有充分利用历史实验数据来迭代优化方案。
受此启发,本文提出新思路:利用大模型的语言理解与推理能力,做优化器,挖掘有效的特征生成规则。已有研究证明:通过自然语言描述优化任务,LLM 可以求解多种不可微优化问题。这意味着不需要手动定义规则空间,大模型就可以自动生成、迭代优化特征生成器,还可以把上一轮输出作为反馈迭代调优。 除此之外,列名、类别取值这类文本语义信息可以直接参与优化,这是传统方法很难做到的。
本文贡献
- 提出 OCTree,一套通用的基于 LLM 的表格自动特征生成框架。流程:首先让大模型根据任务描述给出新特征列的名字;之后利用历史实验的验证指标、从数据中提取的决策树推理信息作为反馈,迭代优化特征生成规则。决策树会在数据集(包含本轮生成的新特征)上训练,输出自然语言形式的推理文本交给 LLM。迭代固定轮次之后,选择验证效果最好的规则。
- 在大量真实数据集(股票预测、患者死亡风险预测等,包含 Kaggle 公开竞赛数据集)开展实验。结果表明 OCTree 可以稳定提升梯度提升树、深度神经网络等各类模型在分类、回归任务上性能。即使数据集全部列名、特征值被匿名脱敏,OCTree 依然有效:在 Grinsztajn 的 19 个分类基准数据集上,相比基线 XGBoost 平均降低 5.0% 相对预测误差;实验使用经过对话数据微调的 Llama‑2‑7B。
- 即便对比方法使用 GPT‑4,我们使用 7B 规模开源大模型的 OCTree 效果依然优于 CAAFE、OpenFE 等最新自动特征工程方法。
- 跨模型迁移:用 A 模型(如 XGBoost 简单模型)生成出来的特征,同样可以提升其他类型模型(神经网络)效果,为向更大规模模型拓展提供可行思路。
2 相关工作
基于 LLM 的表格学习
现有工作大多是把表格序列化转为自然语言,直接微调大模型做预测任务;或是提出表格专用 Tokenizer 预训练大模型。本文不把 LLM 当作预测器,而是将 LLM 作为优化器,生成新的列特征,提升下游各类预测模型性能。
LLM 作为优化器
已有工作使用提示词让 LLM 求解优化问题:线性回归、旅行商、提示词优化等。本文延续该思路用于特征规则优化;创新点在于引入决策树推理作为反馈,把数据集学到的知识以自然语言交给大模型。
自动特征工程
传统自动特征工程:束搜索迭代采样、特征增删剪枝; CAAFE:利用任务文本描述生成具备语义的特征,但它强依赖语言上下文,数据集脱敏匿名时无法工作。 OCTree 优势:不需要人工定义搜索空间;同时支持有语义上下文、匿名无描述的数据集,适用场景更广。
3 基于决策树推理的特征生成框架 OCTree
本章介绍如何利用大模型语言理解、推理能力实现表格自动特征工程。 整体思想:LLM 充当优化器,提出并迭代优化特征生成规则;每轮迭代给大模型两类输入:①上一轮规则对应的验证性能;②从训练数据提取的决策树推理结果,以此实现更高效优化。
3.1 将表格特征生成建模为规则生成器优化问题
表格预测任务目标是训练模型\(f:X\rightarrow Y\)。输入X是 M 维原始特征,列集合\(C=\{c_1...c_M\}\);分类任务标签Y为离散类别,回归任务标签属于实数域。
我们将特征工程定义为对生成规则r的优化:规则r从原始特征映射出一维新特征\(x'\);将原始数据与新特征拼接后训练模型\(f:X\oplus X' \rightarrow Y\)。
优化目标形式化:
\(\min _{r} \mathcal{L}_{f^{*}}\left(\mathcal{D}_{val } \oplus r\right) \quad \text{s.t.}\quad f^{*}=\underset{f}{arg min } \mathcal{L}_{f}\left(\mathcal{D}_{train } \oplus r\right)\)
- \(r=g(D_{train})\):规则由大模型g基于训练集生成
- \(D\oplus r\):原始数据集加上规则生成的新列
- \(\mathcal{L}_f\):任务损失(回归 MAE,分类交叉熵等)
这是双层优化问题,不可微分、计算代价很高;规则本身还包含逻辑与、条件判断等不可微操作。 黑盒优化(进化策略、强化学习)也能解决,但缺点是依然需要手动定义搜索空间,无法充分利用历史方案的反馈。 因此我们选用 LLM 做黑盒优化:依靠提示词传入完整历史轨迹,迭代生成改进规则;不需要预定义搜索空间,还可以利用列的语义信息。
3.2 OCTree:生成新列特征
完整流程:
- 生成新列名称:提示大模型,结合任务目标、原始列名,输出一个语义合理的新列名\(c_{new}\)。例如股票预测任务输出 “交易量”。
- 初始化,提取决策树推理:提示 LLM 给出第一条初始生成规则\(r_0\)。
- 使用规则\(r_0\)构造出新列,扩充训练、验证数据集;
- 在扩充后的训练集上训练预测模型,得到验证损失分数\(s_0\);
- 使用 CART 分类回归树在扩充训练集训练,把树转为自然语言描述,得到推理文本\(d_0\)。
选用 CART 的两个理由:①树集成模型在表格任务效果很强;②CART 极易解释,可以直接翻译成 if‑else 自然语言,直观展示哪些特征、哪些分割阈值对预测重要。
- 基于决策树推理迭代优化规则维护优化轨迹 \(T_t=\{(s_i,d_i,r_i)\}_{i=0}^t\),保存历史规则、验证分数、决策树推理文本。把轨迹全部放进提示词,要求 LLM 生成和历史不一样、效果更好的新规则\(r_{t+1}\)。
注意:轨迹按照分数排序,大模型更容易参考排在后面的内容(来自论文 “Lost in the middle” 结论)。 执行:计算新规则分数\(s_{t+1}\),训练 CART 得到\(d_{t+1}\),把三元组加入轨迹;迭代固定次数,最后选取验证分数最优的规则。
- 生成多个特征选出来最优规则\(r_{opt}\)构造新列,原始数据集就被扩充。在这个已经增加特征的新数据集上,重复全部流程,继续生成下一个特征;直到验证集性能不再提升,停止生成。
图 2 示意图:一轮生成一条新列,不断叠加。
4 实验
在大量分类、回归表格任务测试 OCTree,验证:① consistently 提升多种预测模型;②消融实验证明决策树推理模块的价值;③特征可以跨模型迁移。
数据集
- 带语言描述的数据集:Kaggle 疾病数据集、学生退学预测、Enefit 能耗预测、特斯拉股价、临床试验数据集;覆盖医疗、学术、金融。
- 无描述匿名数据集:Grinsztajn 等人发布的 19 个分类基准,列名被替换为 x1,x2…,用来模拟隐私脱敏场景。 数据集同时包含类别特征、数值特征,覆盖分类 + 回归。
基线模型
- XGBoost:表格任务标杆树模型
- MLP:基础深度神经网络
- HyperFast:最新高速表格分类模型
通用实验设置划分:训练集 60%、验证集 20%、测试集 20%; CART 决策树最大深度固定为 4,提取推理交给 LLM; 默认使用经过 UltraChat 对话数据集微调的 Llama‑2‑7B。
4.1 实验一:有语义上下文的特征工程(表 1)
使用 GPT‑4o、微调 Llama‑2 两种大模型。LLM 输出自然语言规则,再转为可运行 Python 代码。 结果:OCTree 稳定提升 XGBoost、MLP、HyperFast;特斯拉股价任务上 Llama‑2 相对误差降低 15.9%,GPT‑4o 达到 17.1%。
和 CAAFE 对比(表 2): CAAFE 必须依赖特征的文本描述,匿名数据不可用;OCTree 哪怕用 7B 开源 Llama‑2,在 6 个数据集上平均效果优于使用 GPT‑4o 的 CAAFE。 原因分析:
- OCTree 会先生成语义化列名,以此引导生成高质量规则;
- 使用完整历史轨迹 + 决策树推理做反馈迭代;CAAFE 是贪心策略,候选特征只要一次验证没提升就直接丢弃。
4.2 实验二:无上下文、匿名数据集
金融、医疗场景经常为保密将列名替换为符号,没有任何语义。 数据预处理:类别特征序数编码,全部特征最小‑最大归一化;列名变为 x1,x2,x3…。初始化规则采用 XGBoost 特征重要性最高两列做乘法。 结果(表 3):OCTree 在匿名场景依然有效,XGBoost、MLP 平均相对误差下降约 5.0%;HyperFast 在 19 个数据集的 16 个上得到性能提升。
**不同开源大模型对比(表 4)**对比 Llama2‑Chat、Code‑Llama、本文微调 Llama2: 本文微调版本效果最优;Code‑Llama 次之,它擅长生成数学运算、numpy 函数(sin/tan 等);基础 Llama2‑Chat 偏好高阶多项式。
说明:具备对话、代码能力的开源大模型都适合作为 OCTree 的规则生成器。
4.3 消融实验与分析
- **和其他自动特征工程组合(表 5)**OCTree 可以和 OpenFE、AutoFeat 互补。先跑 OCTree 生成特征,再交给 OpenFE 进一步加工;组合后 XGBoost 相对误差降低 7.9%。
- **消融核心组件(表 6)**两组对照:①只生成特征,不给决策树推理,仅把分数给 LLM;②完整 OCTree(特征生成 + DT 推理反馈)。 只给分数也能带来提升,但加入决策树推理反馈后性能得到显著进一步提升。决策树用自然语言告诉大模型哪些列、阈值重要,提供数据内在知识。
- **特征跨模型迁移(表 7)**实验流程:用 XGBoost 做评估,优化生成特征规则;之后直接把这套生成的特征喂给 MLP、HyperFast,不重新调规则。 结果:特征可以有效迁移并提升其他模型性能。
工程价值:大神经网络训练很慢,可以先用轻量 XGBoost 迭代搜索特征,再把特征迁移给深度模型,节省算力。
- 验证 LLM 生成特征的有效性
- 测试 1:从数据集删掉两个真实特征,让 LLM 判断哪一个对预测更重要;LLM 给出排序和真实模型效果保持一致。
- 测试 2:临床试验数据集,LLM 主动提出增加 “年龄” 列;把真实世界年龄数据补充进去,模型准确率显著上涨。说明 LLM 生成的列具备现实意义,可以指导业务补充采集数据。
- 规则迭代过程分析迭代前期:LLM 生成大量差异很大规则,广泛探索搜索空间;迭代后期:收敛,只在局部做细微修改,做精细化调优。
- 大模型幻觉处理LLM 偶尔输出无效、语义不通规则;本框架依靠历史轨迹反馈循环缓解幻觉。效果差的规则会记录在轨迹中,引导后续轮次避开这类错误输出。幻觉更容易出现在前期探索阶段、或者能力较弱的大模型。
5 结论
本文提出 OCTree,利用大模型推理能力实现表格数据自动生成列特征。在大量分类回归任务验证:相比现有自动特征工程方法,持续提升多种预测模型性能。
未来方向:使用 RLHF(人类反馈强化学习)做对齐,进一步提升 LLM 生成规则质量。
局限性评估每一条候选特征都需要训练预测模型,计算开销大。 缓解方案:先用轻量模型(XGBoost)做特征搜索,再迁移到目标复杂模型,减少计算消耗。
致谢、资金支持(略)
附录部分摘要翻译
A 提示词示例
A.1 生成新列名提示词
告知 LLM 任务目标,全部现有列:数值范围、布尔、类别取值;要求输出二元 / 类别类型的全新属性,不能是已存在列。
A.2 规则初始化提示词
输入全部原始属性,要求大模型给出规则,用来生成刚刚生成的新列。
A.3 迭代优化规则提示词
把历史多条规则、对应的 CART 决策树文本、XGBoost 验证分数全部放入 prompt;规则列表按分数排序。要求输出全新规则,尽可能拿到更高分数。
A.4 将自然语言规则翻译成 Python 代码
约束:考虑特征类型,禁止类别变量直接做算术运算;输出可直接运行 def 函数,输入 numpy 数组。
B 数据集详情
B.1 带语义描述数据集
- Disease 疾病数据集:预测患者患病;特征:发烧、疲劳(二元),年龄数值,性别、血压、胆固醇(类别)
- Clinical Trial 临床试验:预测病人死亡风险;大量历史疾病、用药二元特征
- Academic 学生数据集:预测学生退学
- Enefit:回归,预测用户每日能耗
- Tesla Stock 特斯拉股价回归:根据历史几日开盘、最高、最低、收盘价预测当日最高价
B.2 匿名 19 个基准数据集(Grinsztajn)
包含 electricity、covertype、Higgs、MiniBooNE 等,样本从几千到近百万不等;样本超过 5 万全部采样截断为 5 万样本。
C 基线模型超参搜索空间
使用 Optuna 随机搜索 400 次。
- XGBoost:树深度、树数量、学习率、子采样、正则 lambda/alpha 等
- MLP:层数、隐层维度、dropout、学习率、类别 embedding 维度,早停策略,最多 300 轮训练
- HyperFast:集成数量、batch size 等
D 计算资源
硬件:Intel Xeon CPU,RTX3090/4090 /A6000 GPU
E 和 CAAFE 对比补充
CAAFE 结果方差很大,GPT‑4 采样随机性强;OCTree 生成的规则逻辑更贴合业务,CAAFE 大多只做简单分箱、特征相乘。 案例:疾病数据集 CAAFE 输出:年龄分箱、发烧 × 咳嗽简单乘法交互; OCTree 输出复杂逻辑规则:同时发烧 + 疲劳 + 呼吸困难 + 年龄 60‑90,则暴露于感染源 = Yes。
F 不同 LLM 生成模式案例
- Code‑Llama:大量 numpy 数学函数 sin、cos、tan
- Llama2‑Chat 基础版:高阶多项式相乘,幂次很高
- 本文微调模型:多项式同时搭配 abs () 等 python 内置函数,探索空间更广
G 可扩展性
测试几百特征高维数据集 Madelon (501 维),OCTree 依然可以降低 6.3% 相对误差。当特征数量极多,Llama2 上下文不足,可以替换 GPT‑3.5‑Turbo。
H 规则迭代样例
前期生成规则差异巨大;后期收敛,对一组表达式做幂次、常数微调。
I 更广影响
适合金融医疗这类真实数据获取困难、隐私受限场景。但是 OCTree 生成的全部特征都是人工构造,业务使用时必须人工核验可靠性、业务合理性。


评论