使用LLM进行特征生成:一种进化算法方法
摘要
本文提出了一种方法,利用大型语言模型通过进化算法从表格数据中生成新特征,在多个数据集上展示了分类效果的提升。
arXiv:2607.16255v1 公告类型:新
摘要:机器学习管道中的一个关键步骤是为每个实体提供能够代表其处理实体特征的特征或属性。特征工程是发现属性之间关系的重要步骤,否则这些关系可能无法被机器学习算法处理。与此同时,大型语言模型在编码、数学推理和处理世界知识方面表现出了有前景的能力。在这项工作中,我们利用LLM解决基于先前给定特征从表格数据生成特征的问题。我们创建了一个管道,它接受一组属性和一个提示来生成新特征。然后,我们的选择算法选出表现最佳的一组属性。我们将该方法应用于来自不同领域和数据类型的八个数据集。结果显示,在大多数情况下,语言模型能够基于数学和逻辑运算符生成新特征,这些特征对给定任务有用,并能提升分类结果。
查看缓存全文
缓存时间: 2026/07/21 06:48
# 一种进化算法方法 本文是作者后续发表论文的预印本版本:A. Nourbakhsh, B. Alcaraz, and C. Schommer, “Feature Generation Using LLMs: An Evolutionary Algorithm Approach,” in Advances in Explainability, Agents, and Large Language Models, CALM 2024, Communications in Computer and Information Science, vol. 2471, Springer, Cham, 2025. DOI: https://doi.org/10.1007/978-3-031-89103-8_4. 来源:https://arxiv.org/html/2607.16255 11institutetext:卢森堡大学,埃施-阿尔泽特,卢森堡 11email:aria\.nourbakhsh@uni\.lu ###### 摘要 机器学习流程中的关键步骤是为每个实体提供能够代表其处理实体特征的特征或属性。特征工程是发现属性之间关系的重要步骤,否则这些关系可能无法被机器学习算法处理。与此同时,大型语言模型在编码、数学推理和处理世界知识方面展现出了令人期待的能力。在这项工作中,我们利用大型语言模型解决基于已有特征从表格数据生成特征的问题。我们构建了一个流程,该流程接收一组属性和一个提示,以生成新特征。然后,我们的选择算法会选择性能最佳的特征集。我们将该方法应用于来自不同领域和数据类型的八个数据集。结果表明,在大多数情况下,语言模型能够基于数学和逻辑运算符生成对给定任务有用且能提升分类结果的新特征。 ## 1 引言 在机器学习领域,原始数据必须被转化为有意义的特征(或称属性。本文中两者可互换使用),以有效捕捉相关模式。这些属性通过数值、布尔值或字符串值来描述实体。为了实现对不同类别或簇的最佳分类,特征必须具有区分性和信息性,使算法能够检测到不同对象中的隐藏模式。换句话说,机器学习算法基于特征在特征空间中的表示方式来归纳规则[25 (https://arxiv.org/html/2607.16255#bib.bib25)]。特征的重要性不言而喻。这些特征捕捉了数据的底层结构。最强大、最先进的算法的良好性能取决于这些特征的质量。 为了从原始数据中提取这些特征,需要根据从问题实体中获取的信息来创建、选择和修改它们。这个过程耗时且成本高昂,因为它需要人工参与。一种缓解此问题的方法是基于已经提取用于表示的某些属性来生成新属性[23 (https://arxiv.org/html/2607.16255#bib.bib23)]。 给定一组基础特征,另一个问题是一些机器学习算法(如线性回归)会将每个属性单独处理。在这个过程中,提取的特征之间的隐藏关系可能被忽略,从而导致我们丢失一些关键信息。这些关系通常受限于属性值与目标值比较结果的逻辑和算术运算(例如,“size=bigsize=big”,或“size≥3.5size≥3.5”)。例如,如果要识别的模式对应于两个数值属性的和等于5,而当数据中没有表示“和”这一属性时,很难创建一个在该条件下为真的命题逻辑公式,并且这种情况甚至更难以扩展(例如,对于两个属性 a 和 b,你可能创建规则如 (a=0∧b=5)∨(a=1∧b=4)∨... ,但这个析取范式已经包含六个项,如果和依赖于三个属性,公式会变得更长)。 给定数据集的特征数量,这些特征与逻辑和数学运算符(如均值或加法)的组合构成了一个巨大的搜索空间,使得暴力搜索这些关系变得不可行。此外,特征的组合是无界的,因为可以无限地组合新生成的特征。基于给定特征来解决特征生成问题的一些方法在 2 (https://arxiv.org/html/2607.16255#S2) 节中提到。 与此同时,由于大型语言模型的出现,人工智能领域取得了显著进展。这些模型的新能力每天都在被探索,并被应用于不同问题。这些模型在大量数据上训练,能够理解、生成和操作人类语言,并具备解决逻辑和数学问题的能力[6 (https://arxiv.org/html/2607.16255#bib.bib6)]。更重要的是,它们已展示出用不同编程语言生成代码的能力[8 (https://arxiv.org/html/2607.16255#bib.bib8),21 (https://arxiv.org/html/2607.16255#bib.bib21)]。 最近,科学界正在探索在竞争性生成框架中使用大型语言模型,其中多个输出相互竞争以产生更优结果[24 (https://arxiv.org/html/2607.16255#bib.bib24),39 (https://arxiv.org/html/2607.16255#bib.bib39)]。这种方法涉及迭代优化输出以发现新函数并优化结果,已成为 funsearch 方法[30 (https://arxiv.org/html/2607.16255#bib.bib30)]的核心,推动了搜索空间探索的边界。基于 funsearch 方法,在本文中,我们将一个相对较小的语言模型(LLaMA3.1 7B[11 (https://arxiv.org/html/2607.16255#bib.bib11)])应用于基于数据集现有特征的特征工程问题。我们实验了不同设置,例如在提示中保留新生成的特征、忽略它们以及在给定提示中对其进行匿名化。然后,我们使用该提示查询语言模型,以创建应用于给定数据集以生成新属性的函数。一个选择算法会选择性能更好的属性集。我们将此方法应用于八个不同的数据集,并使用两种分类算法。结果显示,在大多数设置和数据集上都有改进。 这种方法的好处在于:a) 避免在所有可能的搜索空间中组合所有关系,并利用大型语言模型生成函数来计算它们。b) 生成具有可直观解释函数的透明特征。c) 该方法可以生成多样化的特征集,并可扩展到其他任务和数据集。d) 它可以考虑任意数量的特征,即我们不限制基于特定数量特征的特征生成。这有助于机器学习算法解决像 Monk-2(见4.1 (https://arxiv.org/html/2607.16255#S4.SS1))这样的数据集中的问题,其中最终标签是三个属性之间关系的乘积。我们展示了大型语言模型可以接受任意数量的特征,并且无需给出预定义运算符,仍然可以生成提高模型可预测性的特征。在此过程中,我们使用一种受遗传算法启发的特征选择算法来保留和排序最高、最佳的特征集,同时仍然探索不太成功的特征集以避免陷入局部最优。 ## 2 相关工作 在本节中,我们探讨一些相关概念,如特征工程和提示设计,并考察使用大型语言模型进行表格数据集特征工程的最先进方法。 ### 2.1 特征工程 所有现代数据驱动的机器学习方法,如决策树、神经网络和线性分类器(例如支持向量机),都将给定的数据点视为一个特征向量[4 (https://arxiv.org/html/2607.16255#bib.bib4)]。这些特征可以包含计算机科学中用于表示实体的各种常见数据类型,例如数值、布尔标志或分类字符串。有效的特征提取和选择技术增强了底层数据结构的表示,提高了下游任务或算法的性能和泛化能力[25 (https://arxiv.org/html/2607.16255#bib.bib25),9 (https://arxiv.org/html/2607.16255#bib.bib9),33 (https://arxiv.org/html/2607.16255#bib.bib33)]。特征生成和工程依赖于诸如可提取信息的可用性和领域知识等因素,这些可能消耗大量资源。然而,新特征通常可以从现有特征中推导出来[7 (https://arxiv.org/html/2607.16255#bib.bib7),13 (https://arxiv.org/html/2607.16255#bib.bib13)]。例如,身体质量指数 (BMI) 计算为体重与身高的比值[13 (https://arxiv.org/html/2607.16255#bib.bib13)],或者总销售收入是 unit\_price × quantity\_sold 的乘积。 这种类型的特征构建对于更好的分类性能很重要[10 (https://arxiv.org/html/2607.16255#bib.bib10)]。多年来,针对这种特征构建已经开发了许多方法,例如贪心策略[31 (https://arxiv.org/html/2607.16255#bib.bib31)]、应用多项式函数[32 (https://arxiv.org/html/2607.16255#bib.bib32)]以及使用算术和逻辑运算符构建新特征[23 (https://arxiv.org/html/2607.16255#bib.bib23)]。例如,在[10 (https://arxiv.org/html/2607.16255#bib.bib10)]中,他们通过随机选择运算符并将其应用于特征对来应用常见的数学函数和算术运算符。然后,一个算法在多次迭代中保留性能最佳的特征集。 其他方法,如强化学习,已被用于优化特征空间[17 (https://arxiv.org/html/2607.16255#bib.bib17)],并且树遍历技术已被用于特征生成和选择[18 (https://arxiv.org/html/2607.16255#bib.bib18)]。也可以将两个或多个特征组合以创建一个新特征[16 (https://arxiv.org/html/2607.16255#bib.bib16)]。 ### 2.2 提示设计、特征选择与生成 使用大型语言模型进行提示设计是一种新趋势,通过预测词序列的概率来利用知识。这些语言模型在推理[37 (https://arxiv.org/html/2607.16255#bib.bib37),2 (https://arxiv.org/html/2607.16255#bib.bib2)]和领域特定应用(如医学[15 (https://arxiv.org/html/2607.16255#bib.bib15)]和金融[20 (https://arxiv.org/html/2607.16255#bib.bib20)])中表现出色。然而,这些模型有一些缺点。由于它们是在互联网数据上训练的,并依赖语言模型来预测最可能的标记,因此它们容易产生幻觉和生成有偏见的输出[27 (https://arxiv.org/html/2607.16255#bib.bib27)]。 我们确定了四项使用大型语言模型进行特征选择和特征工程的相关研究。[14 (https://arxiv.org/html/2607.16255#bib.bib14)]将大型语言模型应用于特征选择,使用了多种提示和策略来选择、排名和逐步选择特征。类似地,[19 (https://arxiv.org/html/2607.16255#bib.bib19)]采用基于提示的技术进行特征选择,并显示大型语言模型识别的特征重要性与传统特征重要性估计方法具有强相关性。他们的方法结合了特征值和目标标签。在另一种设置中,他们将数据和特征描述提供给大型语言模型进行特征选择。 对于特征工程,[12 (https://arxiv.org/html/2607.16255#bib.bib12)]应用提示通过一组有限的数学运算符生成特征。他们通过提供任务描述、特征和训练数据示例展示了有希望的结果。他们明确要求大型语言模型分析特征与当前任务的相关性。此外,他们通过提示要求使用‘is in’、‘≥’和‘≤’关键字创建十个二元特征。同时,他们明确向大型语言模型询问可能的取值范围。值得注意的是,他们使用了有限的运算符集以及更复杂、更长的提示。 “动态自适应特征生成与大型语言模型”[40 (https://arxiv.org/html/2607.16255#bib.bib40)]中的工作是与我们的方法最接近的方法。在他们的方法中,通过提示大型语言模型,将特征集和预定义的数学运算符集提供给一个流程。然后,在提示中,他们将原始特征和新生成的特征结合起来。之后是一个迭代的特征选择过程,该过程在下游任务上评估生成的特征并保留最优数据集。该过程使用一组预定义的一元和二元数学运算符。 我们的方法在以下几个方面与上述工作不同:a) 与[40 (https://arxiv.org/html/2607.16255#bib.bib40)]不同,我们不限制大型语言模型使用预定义的运算符集或二元特征组合。相反,我们的方法允许使用任意数量的相关特征创建新特征,输出可以是布尔值、字符串或实数。这与[12 (https://arxiv.org/html/2607.16255#bib.bib12)]形成对比,其中输出函数仅限于二元值。b) 我们证明大型语言模型可以用相对较短的提示生成新特征。c) 我们表明,即使只有关于数据集的最少信息,大型语言模型也能生成提高分类性能的新特征。d) 我们的结果表明,使用在个人计算机上运行的本地大型语言模型,仅需一个描述预期输出的简短提示和关于数据的最少信息,即可实现有竞争力的性能。e) 为了减轻大型语言模型内偏见知识的影响,我们建议对输入进行匿名化,并仅依赖大型语言模型生成格式良好、可行的函数的能力,而不使用任何领域特定知识。 ## 3 方法 本节描述了为我们的方法设计的流程和提示命令。 ### 3.1 流程 我们的流程333代码可在 GitHub 页面获取:https://github.com/zaap38/funsearch-att 由三个模块组成:1) 一个由大型语言模型驱动的特征生成器模块,2) 一个使用机器学习算法来学习和评估生成特征的评价器,以及3) 一个识别性能最佳特征集以进行改进并进一步应用生成特征的选择算法。此流程的伪代码在算法1 (https://arxiv.org/html/2607.16255#algorithm1) 中概述。 流程接收原始数据集、迭代次数 n 和最大样本数 M。每个样本是一个属性集。流程的输出是一组精炼的数据集样本及其 F1 度量。首先,算法计算初始数据集 D 的 F1,然后初始化一个样本集,其中包含原始数据集 D 及其相关的 F1 度量。算法随后进入一个将运行 n 次迭代的循环。它首先对所有当前样本的 F1 求和。然后随机选择一个样本,F1 值越高的样本被选中的概率越大。这是通过生成一个介于0和所有 F1 之和之间的随机数,并从该随机数中依次减去每个样本的 F1,直到结果小于或等于零,从而指示被选中的样本。 一旦选中一个样本,算法通过在被选中的
相似文章
通过大型模型的演化
本论文证明了在代码上训练的大型语言模型可以显著增强遗传编程的变异算子,使得能够在 Sodarace 领域中生成数十万个功能性 Python 程序用于机器人设计,且无需预训练数据。该方法称为演化通过大型模型(ELM),将 LLM 与 MAP-Elites 相结合,为上下文特定的制品生成引导新的条件模型。
基于LLM的多目标贝叶斯优化算法演化生成
本文扩展了LLaMEA框架,利用大型语言模型作为进化策略中的变异和交叉算子,自动设计多目标贝叶斯优化算法,在合成和实际问题中以显著更低的计算成本实现了最先进的精度。
借助大语言模型发现强化学习接口
本文介绍了 LIMEN,这是一个由大语言模型引导的演化框架,能够通过联合优化原始模拟器状态的观测映射与奖励函数,自动发现强化学习接口。该方法有效降低了人工设计成本,并证明了观测与奖励的协同设计优于单独优化其中任意单一组件。
大型语言模型的高效引导生成
本文介绍了一种高效的方法,利用正则表达式和上下文无关文法引导LLM文本生成,开销极小,并在开源Python库Outlines中实现。
使用大语言模型生成稳健的优化模型组合
提出了一种使用LLMs生成优化模型组合的方法,具有理论保证和实证验证。