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

终于运行成功啦!!


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

相关推荐
前端付豪18 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
strayCat2325518 小时前
Clawdbot 源码解读 7: 扩展机制
人工智能·开源
lnix18 小时前
当“大龙虾”养在本地:我们离“反SaaS”的AI未来还有多远?
人工智能·aigc
泉城老铁18 小时前
Dify知识库如何实现多关键词AND检索?
人工智能
阿星AI工作室18 小时前
给openclaw龙虾造了间像素办公室!实时看它写代码、摸鱼、修bug、写日报,太可爱了吧!
前端·人工智能·设计模式
Halo咯咯18 小时前
别再学写代码了,顶级工程师现在在学管理AI agent | 值得一读
人工智能
明明如月学长18 小时前
被 Claude Code 劝退?这款免费开源好用的 AI 神器更适合普通人
人工智能
恋猫de小郭20 小时前
AI 正在造就你的「认知卸载」,但是时代如此
前端·人工智能·ai编程
飞哥数智坊1 天前
我的“龙虾”罢工了!正好对比下GLM、MiniMax、Kimi 3家谁更香
人工智能
风象南1 天前
很多人说,AI 让技术平权了,小白也能乱杀老师傅 ?
人工智能·后端