比肩xgboost和lightgbm表格数据的最强神器tabnet,而2020年退出的tabnet神经网络专门针对表格数据而诞生的神器。实战,单任务和多任务回归!!!

本文介绍了TabNet,一个针对表格数据的深度学习模型,对比了其与xgboost和lightgbm等传统算法的效果。通过官方提供的pytorch实现,展示了TabNet在单任务和多任务回归任务上的应用,强调了数据量越大,TabNet的表现越优。代码示例详细解释了如何预处理数据、训练模型以及保存和加载模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

比肩xgboost和lightgbm表格数据的最强神器tabnet,而2020年退出的tabnet神经网络专门针对表格数据而诞生的神器。
在这里插入图片描述
上图是官网的论文给出的效果,我们可以看出来,catnet效果还是不错的,而且数据量越大效果比机器学习的更好。


`

一、官网的实战案例

1.pytorch版的回归任务

from pytorch_tabnet.tab_model import TabNetRegressor
import torch
from sklearn.preprocessing import LabelEncoder
from sklearn.metrics import mean_squared_error
import pandas as pd
import numpy as np
import os
import wget
from pathlib import Path
np.random.seed(0)

"导入数据"
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"
dataset_name = 'census-income'
out = Path(os.getcwd()+'/data/'+dataset_name+'.csv')

out.parent.mkdir(parents=True, exist_ok=True)
if out.exists():
    print("File already exists.")
else:
    print("Downloading file...")
    wget.download(url, out.as_posix())

train = pd.read_csv(out)
target = ' <=50K'
if "Set" not in train.columns:
    train["Set"] = np.random.choice(["train", "valid", "test"], p =[.8, .1, .1], size=(train.shape[0],))

train_indices = train[train.Set=="train"].index
valid_indices = train[train.Set=="valid"].index
test_indices = train[train.Set=="test"].index

categorical_columns = []
categorical_dims =  {
   }
for col in train.columns[train.dtypes == object]:
    print(col, train[col].nunique())
    l_enc = LabelEncoder()
    train[col] = train[col].fillna("VV_likely")
    train[col] = l_enc.fit_transform(train[col].values)
    categorical_columns.append(col)
    categorical_dims[col] = len(<
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值