目 录CONTENT

文章目录

使用大型语言模型(LLM)进行表格数据高级特征工程的五种技术

Administrator
2025-10-26 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

📢 转载信息

原文链接:https://machinelearningmastery.com/5-advanced-feature-engineering-techniques-with-llms-for-tabular-data/

原文作者:Iván Palomares Carrascosa


在本文中,您将学习到使用大型语言模型(LLM)来工程化特征的实用、高级方法,这些特征将结构化(表格)数据与文本数据融合,以构建更强大的下游模型。

我们将涵盖的主题包括:

  • 从表格上下文生成语义特征,并将其与数值数据相结合。
  • 使用LLM进行上下文感知的缺失值插补、数据丰富和领域驱动的特征构建。
  • 构建混合嵌入空间并利用模型知情推理指导特征选择。

让我们直接开始吧。

表格数据使用LLM进行高级特征工程的5种技术
图片作者:Editor

引言

在LLM时代,像特征工程这样最经典的机器学习概念、方法和技术似乎不再是焦点。事实上,特征工程仍然非常重要。特征工程对于用作LLM输入的原始文本数据来说极其有价值。它不仅可以帮助预处理或构建非结构化数据(如文本)的结构,还可以通过弥补结构化和非结构化数据之间——本应存在的——鸿沟,增强最先进的LLM在结合表格(结构化)数据场景和来源时提取、生成和转换信息的方式。

将表格数据集成到LLM工作流程中具有多种优势,例如丰富底层主要文本输入的特征空间、驱动语义增强,以及通过弥合结构化和非结构化数据之间的明显差距来自动化模型管道。

本文介绍了五种高级特征工程技术,通过这些技术,LLM可以将其工作流程中宝贵的信息整合到完全结构化的表格数据中(或从中提取)。

1. 通过文本上下文进行语义特征生成

LLM可被用来描述或总结表格数据集中行、列或分类属性的值,从而生成基于文本的嵌入。基于LLM在海量数据集上进行艰苦训练后获得的广泛知识,例如,它可以接收客户数据中“邮政编码”属性的值,并输出上下文丰富的额外信息,如“该客户居住在一个乡村邮政区域。” 这些具有上下文意识的文本表示可以显著丰富原始数据集的信息。

同时,我们还可以使用Sentence Transformers模型(托管在Hugging Face上)将LLM生成的文本转化为有意义的嵌入,这些嵌入可以与表格数据的其余部分无缝结合,从而为下游预测性机器学习模型(如集成分类器和回归器,例如使用scikit-learn)构建信息更丰富的输入。以下是该过程的一个示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from sentence_transformers import SentenceTransformer
import numpy as np
 
# LLM-generated description (mocked in this example for the sake of simplicity)
llm_description = "A32 refers to a rural postal region in the northwest."
 
# Create text embeddings using a Sentence Transformers model
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
embedding = model.encode(llm_description)  # shape e.g. (384,)
 
numeric_features = np.array([0.42, 1.07])
hybrid_features = np.concatenate([numeric_features, embedding])
 
print("Hybrid feature vector shape:", hybrid_features.shape)

2. 智能缺失值插补与数据丰富

为什么不尝试利用LLM来推动传统缺失值插补技术的边界,而传统技术通常基于列级别的简单汇总统计?当针对文本补全等任务进行适当训练时,LLM可以根据模式分析和推理,或者根据对目标列中包含缺失值的其他相关列进行推理,来推断缺失值或分类或文本属性中的“空白”。

实现此目标的一种可能策略是设计少样本提示(few-shot prompts),并提供示例以指导LLM生成所需的确切输出。例如,可以通过关注其他列中的关系线索来补全关于一个名叫爱丽丝的客户的缺失信息。

1
2
3
4
5
6
prompt = """Customer data:
Name: Alice
City: Paris
Occupation: [MISSING]
Infer occupation."""
# "Likely 'Tourism professional' or 'Hospitality worker'""

使用LLM进行缺失信息插补的潜在好处包括提供超越传统统计方法的上下文化和可解释的插补

3. 通过提示词模板进行领域特定的特征构建

此技术涉及在LLM的辅助下构建新特征。关键在于将领域知识编码到提示词模板中,而不是基于静态规则或操作来实现硬编码的逻辑来构建这些特征,这些模板可用于推导出新的、工程化的、可解释的特征。

简洁的推理生成与正则表达式(或关键字后处理)的结合是这种方法的有效策略,以下示例涉及金融领域:

1
2
3
4
5
prompt = """
Transaction: 'ATM withdrawal downtown'
Task: Classify spending category and risk level.
Provide a short rationale, then give the final answer in JSON.
"""

文本“ATM withdrawal”暗示了与现金相关的交易,而“downtown”可能表明其中风险很低。因此,我们通过使用上述提示词模板直接要求LLM提供交易的类别和风险级别等新的结构化属性。

1
2
3
4
5
6
7
8
9
import json, re
 
response = """
Rationale: 'ATM withdrawal' indicates a cash-related transaction. Location 'downtown' does not add risk.
Final answer: {"category": "Cash withdrawal", "risk": "Low"}
"""
result = json.loads(re.search(r"\{.*\}", response).group())
print(result)
# {'category': 'Cash withdrawal', 'risk': 'Low'}

4. 用于结构化-非结构化数据融合的混合嵌入空间

该策略指的是融合数值嵌入(例如,通过对高维数据集应用PCA或自编码器产生的结果)与由LLM(如句子转换器)产生的语义嵌入。结果是:混合的、联合特征空间,能够整合多个(通常是不同的)相互关联信息的来源。

一旦PCA(或类似技术)和LLM各自完成了它们的工作,最终的合并过程就非常直接了,如下例所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from sentence_transformers import SentenceTransformer
import numpy as np
 
# Semantic embedding from text
embed_model = SentenceTransformer("all-MiniLM-L6-v2")
text = "Customer with stable income and low credit risk."
text_vec = embed_model.encode(text)  # numpy array, e.g. shape (384,)
 
# Numeric features (consider them as either raw or PCA-generated)
numeric_vec = np.array([0.12, 0.55, 0.91])  # shape (3,)
 
# Fusion
hybrid_vec = np.concatenate([numeric_vec, text_vec])
 
print("numeric_vec.shape:", numeric_vec.shape)
print("text_vec.shape:", text_vec.shape)
print("hybrid_vec.shape:", hybrid_vec.shape)

其优势在于能够联合捕获和统一语义和统计模式及细微差别。

5. 通过LLM指导的推理进行特征选择和转换

最后,LLM可以充当您数据集中特征的“语义审阅者”,通过基于领域知识和数据集特定的统计线索来解释、排序或转换这些特征。本质上,这是将经典的特征重要性分析与自然语言推理相结合,从而使特征选择过程更具交互性、可解释性和智能性

以下简单代码示例说明了这一思想:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from transformers import pipeline
 
model_id = "HuggingFaceH4/zephyr-7b-beta"   # or "google/flan-t5-large" for CPU use
 
reasoner = pipeline(
    "text-generation",
    model=model_id,
    torch_dtype="auto",
    device_map="auto"
)
 
prompt = (
    "You are analyzing loan default data.\n"
    "Columns: age, income, loan_amount, job_type, region, credit_score.\n\n"
    "1. Rank the columns by their likely predictive importance.\n"
    "2. Provide a brief reason for each feature.\n"
    "3. Suggest one derived feature that could improve predictions."
)
 
out = reasoner(prompt, max_new_tokens=200, do_sample=False)
print(out[0]["generated_text"])

为了获得更接近人类推理的方法,可以考虑将此方法与SHAP(SHAP)或传统的特征重要性指标相结合。

总结

在本文中,我们看到了LLM如何以多种方式战略性地用于增强传统的表格数据工作流程,从语义特征生成和智能插补到特定领域的转换和混合嵌入融合。归根结底,在许多领域,可解释性和创造力可以提供超越纯粹的“暴力破解”特征选择的优势。一个潜在的缺点是,这些工作流程通常更适合基于API的批量处理,而不是交互式用户-LLM聊天。缓解此限制的一个有前景的方法是将基于LLM的特征工程技术直接集成到AutoML和分析管道中。




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区