Nature 2025 TabPFN的使用与报错解决

官网链接:GitHub - PriorLabs/TabPFN: ⚡ TabPFN: Foundation Model for Tabular Data ⚡

1、TabPFN的安装

直接

复制代码
pip install tabpfn

2、官网运行代码

(1)分类

python 复制代码
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
from tabpfn.constants import ModelVersion

# Load data
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=42)

# Initialize a classifier
clf = TabPFNClassifier()  # Uses TabPFN 2.5 weights, finetuned on real data.
# To use TabPFN v2:
# clf = TabPFNClassifier.create_default_for_version(ModelVersion.V2)
clf.fit(X_train, y_train)


# Predict probabilities
prediction_probabilities = clf.predict_proba(X_test)
print("ROC AUC:", roc_auc_score(y_test, prediction_probabilities[:, 1]))

# Predict labels
predictions = clf.predict(X_test)
print("Accuracy", accuracy_score(y_test, predictions))

(2)回归

python 复制代码
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
from tabpfn.constants import ModelVersion

# Load Boston Housing data
df = fetch_openml(data_id=531, as_frame=True)  # Boston Housing dataset
X = df.data
y = df.target.astype(float)  # Ensure target is float for regression

# Train-test split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=42)

# Initialize the regressor
regressor = TabPFNRegressor()  # Uses TabPFN-2.5 weights, trained on synthetic data only.
# To use TabPFN v2:
# regressor = TabPFNRegressor.create_default_for_version(ModelVersion.V2)
regressor.fit(X_train, y_train)

# Predict on the test set
predictions = regressor.predict(X_test)

# Evaluate the model
mse = mean_squared_error(y_test, predictions)
r2 = r2_score(y_test, predictions)

print("Mean Squared Error (MSE):", mse)
print("R² Score:", r2)

3、"连接失败"报错解决

但这里我直接运行出现报错

由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。' thrown while requesting HEAD https://huggingface.co/Prior-Labs/tabpfn_2_5/resolve/main/tabpfn-v2.5-classifier-v2.5_default.ckpt

这是由于huggingface的限制,无法连接上,这里提供两种方案

(1)安全上网去huggingface官网下载

Prior-Labs/tabpfn_2_5 at main

但这里注意,你什么版本报错,就下载对应的ckpt文件,我这里下的其实是tabpfn2.0

这里有很多ckpt文件,我就下载了分类的default,然后修改代码

python 复制代码
model_path = "./tabpfn/tabpfn-v2.5-classifier-v2.5_default.ckpt"
clf = TabPFNClassifier(
        model_path=model_path,  # 直接指定路径
        device='cuda:0',  # 如果没有GPU,使用CPU
        ) 

(2)去镜像网站上下载

Prior-Labs/TabPFN-v2-clf at main

由于我本地笔记本没有gpu,因此使用了cpu,但这里cpu也有报错,因为cpu性能太低了,触发了保护机制

于是使用服务器进行实验,但这里出现新的问题,可能还有一些是参数不对,这是由于下载的版本和权重文件不符合,因此导致对不上。(ps:tabpfn一定要python>=3.9)

提供一个我下载的版本:

python 复制代码
torch==2.1.1+cu118
tabpfn==2.2.1
model=tabpfn-v2-classifier-finetuned-zk73skhh.ckpt

终于运行成功啦!!


都看到这里了,给个小心心♥呗~

相关推荐
极客小俊1 小时前
Windows 卸载 OpenClaw
人工智能
吴佳浩 Alben1 小时前
GPU 生产环境实践:硬件拓扑、显存管理与完整运维体系
运维·人工智能·pytorch·语言模型·transformer·vllm
多年小白1 小时前
OpenClaw 本周技术更新速递
人工智能·ai·ai编程·openclaw
深瞳智检1 小时前
lesson-02 NLP 基础-文本表示与词向量
人工智能·自然语言处理·llm·大语言模型
twc8292 小时前
大模型生成 QA Pairs 提升 RAG 应用测试效率的实践
服务器·数据库·人工智能·windows·rag·大模型测试
宇擎智脑科技2 小时前
A2A Python SDK 源码架构解读:一个请求是如何被处理的
人工智能·python·架构·a2a
IT_陈寒2 小时前
Redis缓存击穿:3个鲜为人知的防御策略,90%开发者都忽略了!
前端·人工智能·后端
vx_biyesheji00012 小时前
Python 全国城市租房洞察系统 Django框架 Requests爬虫 可视化 房子 房源 大数据 大模型 计算机毕业设计源码(建议收藏)✅
爬虫·python·机器学习·django·flask·课程设计·旅游
电商API&Tina2 小时前
【电商API接口】开发者一站式电商API接入说明
大数据·数据库·人工智能·云计算·json
湘美书院--湘美谈教育3 小时前
湘美谈教育湘美书院网文研究:人工智能与微型小说选集
人工智能·深度学习·神经网络·机器学习·ai写作