TabPFN 使用教程:表格分类与回归,从装好环境到出结果只要 1 秒
TabPFN 使用教程表格分类与回归从装好环境到出结果只要 1 秒【免费下载链接】TabPFN⚡ TabPFN: Foundation Model for Tabular Data ⚡项目地址: https://gitcode.com/GitHub_Trending/ta/TabPFN你肯定有过这种体验一张 Excel 风格的表格想跑个基线模型数据读好了、特征清干净了光是挑模型调参数就得半天。TabPFN 就是冲着这个场景来的——面向中小规模表格数据的人写一行 fit 就能拿到能用的模型小数据集上大约 1 秒出分类结果。这篇教程带你走一遍 tabpfn 安装、表格数据分类、tabpfn 回归还有微调和模型保存全部用最小可运行的代码。它适合谁TabPFN 能处理多大的表格先说任务类型就两种一种是分类二分类、多分类都行一种是回归预测连续值。你的标签是类别就用分类器标签是数值就用回归器不用自己选网络结构也不用写训练循环。数据规模方面官方优化的上限是 5 万行TabPFN-2.5 针对这个量级做的优化绝大多数中小表格都够用。数据里有缺失值也不用先填——模型内部自带缺失值处理。适合谁用需要在中小表格上快速出基线的数据工程师和算法工程师或者想在微调之前先拿个强起点对比效果的人。有 GPU 的话体验更好哪怕是 8GB 显存的旧卡也能跑得很顺。 一条命令装好 TabPFN环境要求很低Python 3.9 以上、PyTorch 2.1 以上GPUCUDA推荐但非必需。正式使用一条命令搞定pip install tabpfn如果你要参与仓库本身的开发走本地开发安装git clone https://gitcode.com/GitHub_Trending/ta/TabPFN.git --depth 1 cd TabPFN pip install -e .[dev]装完后可以跑pytest tests/验证环境是否正常改代码时用 ruff 检查和仓库保持一致的风格就行。表格数据分类3 行核心代码拿到结果目标在公开的乳腺癌数据集上做二分类直接看 ROC AUC 和准确率。from sklearn.datasets import load_breast_cancer from sklearn.metrics import accuracy_score, roc_auc_score 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.5, random_state42) clf TabPFNClassifier() clf.fit(X_train, y_train) probs clf.predict_proba(X_test) print(ROC AUC:, roc_auc_score(y_test, probs[:, 1])) print(Accuracy:, accuracy_score(y_test, clf.predict(X_test)))就这么短全程没有任何调参。predict_proba出概率predict出标签评估用的都是 sklearn 现成的指标。想看这个例子的完整写法参考 二分类示例换成多分类数据集时代码基本不变。TabPFN 回归预测房价目标在波士顿房价数据上训练回归模型看 MSE 和 R²。from sklearn.datasets import fetch_openml from sklearn.metrics import mean_squared_error, r2_score from sklearn.model_selection import train_test_split from tabpfn import TabPFNRegressor df fetch_openml(data_id531, as_frameTrue) X_train, X_test, y_train, y_test train_test_split( df.data, df.target.astype(float), test_size0.5, random_state42 ) reg TabPFNRegressor() reg.fit(X_train, y_train) preds reg.predict(X_test) print(MSE:, mean_squared_error(y_test, preds)) print(R²:, r2_score(y_test, preds))predict返回的是点估计均值如果你业务上更关心 MAE 这类指标换个 sklearn 指标函数就行——它完全是 sklearn 接口和别的模型互换没有成本。完整版见 回归示例。微调模型并保存下次直接加载目标通用模型在你的业务数据上效果差一口气就微调几个 epoch然后把模型持久化省得每次重新训练。from tabpfn import TabPFNClassifier from tabpfn.finetune_utils import finetune from tabpfn.model_loading import save_fitted_tabpfn_model, load_fitted_tabpfn_model finetuned_clf finetune(clf, X_train, y_train, epochs10) save_fitted_tabpfn_model(clf, my_model.tabpfn_fit) loaded_clf load_fitted_tabpfn_model(my_model.tabpfn_fit, devicecpu)微调就是让预训练模型去适应你自己的数据集保存后的产物可以原样加载还能指定device放到 CPU 上跑。带上超参的完整微调流程可以看 微调示例它建议用 CUDA 环境来跑。环境变量与配置细节一次说清平时最容易碰到的环境变量就三个TABPFN_MODEL_CACHE_DIR把模型缓存目录指到本地路径离线场景很有用TABPFN_ALLOW_CPU_LARGE_DATASETtrue允许在 CPU 上跑更大的数据集PYTORCH_CUDA_ALLOC_CONFmax_split_size_mb:512调整 CUDA 显存分配策略项目本身的依赖、构建和开发工具配置都写在pyproject.toml里从源码安装时它就是第一个要看的文件。⚡ 4 个提速技巧用 GPU8GB 显存的旧卡就能工作得很好打开 KV 缓存fit 时传fit_modefit_with_cache预测阶段明显变快批量处理手头有多个数据集时用批处理方式一起跑数据特别大时配合随机森林预处理或其他扩展方法再交给 TabPFN❓ 最常被问到的 3 个问题问TabPFN 能处理多大的数据集5 万行以内TabPFN-2.5 针对这个量级优化。再大的话建议先用随机森林做预处理或用其他扩展方法。问断网环境能用吗能。先跑python scripts/download_all_models.py把所有模型预下载到本地之后离线也能正常用脚本见 模型下载脚本。问数据里有缺失值怎么办不用管TabPFN 内置了缺失值处理能力直接喂原始数据即可。使用边界在哪里许可上注意一下TabPFN-2.5 的模型权重是非商业许可代码和 TabPFN-2 的权重走 Prior Labs 许可Apache 2.0 外加归属要求商业项目用之前先确认自己跑的是哪个版本。如果你还不想写代码可以先打开examples/notebooks/里的本地演示 notebook照着把整个流程点一遍。【免费下载链接】TabPFN⚡ TabPFN: Foundation Model for Tabular Data ⚡项目地址: https://gitcode.com/GitHub_Trending/ta/TabPFN创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考