ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

TabPFN 实战:5 分钟从 0 到跑通表格数据小样本分类

TabPFN 实战:5 分钟从 0 到跑通表格数据小样本分类 TabPFN 实战:5 分钟从 0 到跑通表格数据小样本分类【免费下载链接】TabPFN⚡ TabPFN: Foundation Model for Tabular Data ⚡项目地址: https://gitcode.com/GitHub_Trending/ta/TabPFN你手里的表格只有几百到几千行:直接训深度网络会过拟合,传统模型又得自己处理特征、反复调参。TabPFN 是面向这种场景的表格数据基础模型,把小样本分类与回归变成一次模型推理:fit 之后直接 predict,不需要逐数据集训练。先把它跑起来,原理放在后面讲。 安装与最小示例:5 分钟跑出第一个表格分类结果安装命令是pip install tabpfn,需要 Python 3.10 以上。下面的例子取自仓库的二分类示例,跑完你会在终端看到测试集的预测标签;首次运行还会下载模型权重,并弹出浏览器完成一次授权,token 缓存在本地,只此一次。from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from tabpfn import TabPFNClassifier X, y load_breast_cancer(return_X_yTrue) X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.33, random_state42) clf TabPFNClassifier() clf.fit(X_train, y_train) # 首次调用会下载模型,稍慢属正常 print(clf.predict(X_test))能跑通之后,值得花一分钟弄清它为什么不用训练。 免训练预测:预训练如何替你省掉调参传统流程里,你要选模型、处理特征、调参、跑训练循环。TabPFN 把这些工作前移到了预训练阶段:模型在大量合成表格数据上训练过,见过的表格模式已固化在权重里。推理时,你的训练集被编码成输入的一部分,predict 只需一次前向,直接输出各类别的概率;没有梯度下降,也没有训练轮数。缺失值可以直接喂进去,内部已有处理,不必先填充。想读实现时,模型结构从 src/tabpfn/architectures/ 入手,数据清洗与特征变换在 src/tabpfn/preprocessing/。原理讲到这里,下一步把示例数据换成自己的。 换成自己的数据:从分类换到回归目标是连续值:现象是分类器不适用,比如预测金额或设备剩余寿命。做法:换成 TabPFNRegressor,fit、predict 用法不变;默认 predict 给单点估计,想看区间就传 output_type 和 quantiles。预期输出:三个分位数各一列,可直接做区间预测。from tabpfn import TabPFNRegressor reg TabPFNRegressor() reg.fit(X_train, y_train) # 输出分位数而非单点,便于做区间预测 q reg.predict(X_test, output_typequantiles, quantiles[0.25, 0.5, 0.75])想换模型版本:现象是默认 TabPFN-3 的规模上限不合需求。做法:创建时改用TabPFNClassifier.create_default_for_version(ModelVersion.V2_6),fit 与 predict 不变。预期输出:同一套接口,权重换成指定版本,规模上限随之变化。换数据时,最先撞上的是规模与硬件的边界。数据规模、显存与调用习惯的边界硬件与规模:官方建议 GPU,约 8GB 显存即可,部分大数据集需要 16GB;CPU 只适合中小数据,默认 TabPFN-3 上限 5000 样本。数据规模上限为 1,000,000 × 200、100,000 × 2,000 或 1,000 × 20,000(行 × 列),列数越多行数上限越低;超限时可子采样,或设ignore_pretraining_limitsTrue越过限制。调用习惯:每次 predict 都会重算训练集表示,把测试集拆成 100 次调用约比一次调用慢 100 倍;测试集大时按 1000 行一块切分。需要反复预测时(如交叉验证),用fit_modefit_with_cache在 fit 时构建缓存,fit 变慢、predict 变快,代价是约 O(样本数 × 特征数) 的额外内存。许可:代码为 Apache 2.0(附署名要求),TabPFN-2.5/2.6/3 权重为非商业许可,默认使用 TabPFN-3;商业生产环境需走官方企业版。边界之内,还会遇到几个具体的坑。️ 避坑清单:三个高频报错的解法报错现象原因解决加载模型时报 pickle 错误版本过旧或权重文件损坏pip install tabpfn --upgrade,损坏则重新下载权重CI/服务器首次运行卡在授权首次用会自动开浏览器接受许可,无界面环境打不开从 PriorLabs 账号取 token,设环境变量TABPFN_TOKENCPU 跑超过上限的样本报错CPU 有样本数上限(默认 TabPFN-3 为 5000)换 GPU;确要硬跑设TABPFN_ALLOW_CPU_LARGE_DATASETtrue坑绕过去之后,只剩一个选型问题。 本地与云服务的取舍,以及继续读什么维度本地运行(本仓库)官方托管 TabPFN Client适合数据不能出机器、有 GPU、可接受一次授权没有 GPU、只想快速验证、数据可上云代价显存要求;权重为非商业许可数据离开本地本地结果满意后,可以按这个顺序继续:README:安装、各平台 GPU 配置与 FAQ 都在这里examples/:分类、回归、调参、微调与 KV 缓存的脚本scripts/download_all_models.py:离线环境预先下载全部权重论文引用与 BibTeX 见 README 的 Citation 部分【免费下载链接】TabPFN⚡ TabPFN: Foundation Model for Tabular Data ⚡项目地址: https://gitcode.com/GitHub_Trending/ta/TabPFN创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表