Tabular Foundation Models
了解表格基础模型如何利用预训练知识进行分类和回归,并获取实用的工作流程、应用场景和评估指导。
表格基础模型是预训练的机器学习模型,旨在根据按行和列排列的结构化数据进行预测。表格基础模型不从头完全学习每个新任务,而是重用跨多个数据集学习到的模式来解释新表格、带标签的示例以及特征之间的关系。表格基础模型将通用基础模型的概念扩展到了诸如分类和回归等常见的监督学习问题中。
表格基础模型的工作原理#
传统的表格模型仅从为一个任务提供的数据集中进行学习。而表格基础模型首先会在广泛的表格分布或生成的的数据问题上进行预训练。这教会了表格基础模型关于关系、噪声、特征交互、类边界和缺失信息的通用假设。
When given a new dataset, the model examines the training rows, their target values, and the rows requiring predictions. Many implementations perform this step through in-context learning: labeled records provide the context needed to solve the new task, often without lengthy task-specific parameter optimization. A transformer may process columns and rows as contextual elements, although architectures differ.
表格带来了图像和文本所没有的挑战。列可以表示连续测量值、类别、日期、计数或标识符,并且列的顺序通常没有什么意义。良好的数据准备仍然至关重要。Scikit-learn 关于处理混合类型列的指南阐明了为什么不同的特征类型可能需要不同的处理方式,而 pandas 文档则解释了表示缺失数据的一致方法。基础模型可以减少手动特征工程,但它无法自动纠正误导性的标签或定义不当的变量。
相关概念与关键区别#
-
**自动机器学习:**自动机器学习在每个数据集的算法、预处理步骤和超参数中进行搜索。相比之下,表格基础模型带入了来自预训练的可复用知识,并且可能在几乎不需要模型搜索的情况下生成预测。
-
**迁移学习:**迁移学习通常通过微调来调整预训练权重。表格基础模型可以支持微调,但许多表格基础模型旨在直接从新表格的示例中进行推理。
-
**梯度提升树:**树集成仍然是强大且高效的表格基线,并且会针对每个任务单独进行训练。对于小型数据集、快速实验或重复任务,基础模型可能特别方便,但应该将基础模型与树模型进行比较,而不是假设基础模型会取代它们。
表格基础模型也不同于应用于 CSV 文本的语言模型。表格基础模型对特征和目标的统计结构进行操作,而不是将每一行视为普通的自然语言提示。
实际应用#
-
**临床风险评估:**医院可能拥有一个相对较小的表格,其中包含患者年龄、实验室测量结果、症状、治疗历史和结果标签。表格基础模型可以估计诸如再入院或并发症等风险,而无需进行大型神经网络训练运行。由于错误可能会影响护理决策,因此团队必须评估不同患者群体的性能,并保持适当的临床监督。此工作流可以补充基于图像的医疗计算机视觉,其中扫描导出的测量值会成为额外的表格列。
-
**制造质量预测:**检查系统可以使用计算机视觉检测可见缺陷,同时记录机器温度、生产速度、材料批次、班次和传感器读数。来自Ultralytics YOLO26 模型的预测(例如缺陷计数或置信度分数)可以转换为结构化特征,并与运营数据相结合。然后,表格模型可以预测单元是否需要复查,或者工艺是否可能超出公差范围。团队可以通过Ultralytics Platform管理视觉数据集标注、训练和部署。
实际工作流与评估#
一个著名的实现通过文档化的TabPFN 分类工作流公开了一个类似 scikit-learn 的分类器。在安装 tabpfn 和 scikit-learn 并完成任何所需的首次运行模型访问后,一个最小的二分类示例为:
from sklearn.datasets import load_breast_cancer
from sklearn.metrics import roc_auc_score
from sklearn.model_selection import train_test_split
from tabpfn import TabPFNClassifier
# Create separate training and test sets
features, targets = load_breast_cancer(return_X_y=True)
x_train, x_test, y_train, y_test = train_test_split(features, targets, test_size=0.2, random_state=42, stratify=targets)
# Fit from the labeled context and predict probabilities
model = TabPFNClassifier()
model.fit(x_train, y_train)
probabilities = model.predict_proba(x_test)[:, 1]
print(roc_auc_score(y_test, probabilities))这演示了熟悉的拟合和预测接口,但单一测试拆分并不是生产就绪性的充分证据。请使用适当的交叉验证策略,防止预处理或目标泄漏,并选择符合错误成本的评估指标。当决策依赖于预测概率时,请检查概率校准,而不仅仅是准确率。
最后,按子群检查性能,与简单基线进行比较,测试偏移数据,并记录局限性。NIST AI 风险管理框架为值得信赖的评估提供了更广泛的指导,而持续的模型监控有助于检测部署后不断变化的特征分布和下降的性能。









