PyTorch Tabular:表格数据深度学习框架
PyTorch Tabular 简介在处理表格数据时梯度提升模型通常优于其他机器学习模型。虽然在文本和图像领域深度学习表现出了非凡的效果但在表格数据上这种优势尚未完全展现。然而近期的深度学习革命已将部分焦点转向了表格数据领域因此专门为表格数据设计的新型架构和模型不断涌现。其中许多模型的表现已经可以与经过良好调优的梯度提升模型相媲美甚至略有超越。PyTorch Tabular 是一个框架/封装库旨在使表格数据的深度学习易于应用并能服务于实际场景和研究。该库的设计核心原则是低阻力的可用性易于定制可扩展且易于部署该框架并非从零开始构建而是建立在 PyTorch 和 PyTorch Lightning 等成熟项目的基础之上。该框架还包含一些前沿的深度学习模型可以使用 pandas 数据帧轻松进行训练。核心特性高层配置驱动 API通过配置驱动的API可以快速使用和迭代。用户只需提供 pandas 数据帧库会自动处理归一化、标准化、类别特征编码以及数据加载器的准备工作。易于扩展BaseModel类提供了一个易于扩展的抽象类用于实现自定义模型同时仍可利用库中封装的其他功能。集成SOTA模型实现了如 Neural Oblivious Decision Ensembles (NODE) 和 TabNet 等前沿网络。具体使用方法可参考文档中的示例。基于 PyTorch Lightning通过使用 PyTorch Lightning 进行训练PyTorch Tabular 继承了其提供的灵活性和可扩展性。为什么选择 PyTorch TabularPyTorch Tabular 旨在降低表格数据深度学习在工业应用和研究中的门槛。目前使用神经网络并不像使用传统的 Sci-kit Learn 机器学习模型那样简单。PyTorch Tabular 致力于将神经网络工作中的“软件工程”部分变得尽可能简单和轻松让用户能专注于模型本身。同时它也希望能将表格数据领域的不同发展统一到一个单一框架中并提供一套能与各种前沿模型协同工作的 API。目前表格深度学习的大多数发展都分散在各个独立的 Github 仓库中。除了 fastai 之外几乎没有框架真正关注过表格数据。这正是 PyTorch Tabular 应运而生的原因。如何使用 PyTorch Tabular安装虽然安装包包含了 PyTorch但最佳且推荐的方式是先从官方网站安装 PyTorch为你的机器选择合适的 CUDA 版本PyTorch 版本需高于 1.3。安装好 PyTorch 后直接使用以下命令安装包含额外依赖用于实验跟踪的 Weights Biases的完整库pipinstallpytorch_tabular[all]如果只需要基础功能则安装pipinstallpytorch_tabularPyTorch Tabular 的源代码可以从 Github 仓库下载。你可以克隆公共仓库gitclone git://github.com/manujosephv/pytorch_tabular获取源代码副本后可以通过以下命令安装python setup.pyinstall配置设置你需要提供四个配置项大部分都有智能默认值它们将驱动后续的整个流程DataConfig定义目标列名称、类别和数值列名称、需要执行的任何转换等。ModelConfig每个模型都有特定的配置。这决定了要训练哪个模型并允许你定义模型的超参数。TrainerConfig通过设置batch_size、epochs、早停等参数来配置训练过程。大部分参数直接来自 PyTorch Lightning并在训练时传递给底层的Trainer对象。OptimizerConfig允许你定义和使用不同的优化器和学习率调度器。支持标准的 PyTorch 优化器和学习率调度器。对于自定义优化器可以在fit方法中使用相应参数进行覆盖。自定义优化器应与 PyTorch 兼容。ExperimentConfig这是一个可选参数。如果设置则用于定义实验跟踪。目前支持两种实验跟踪框架Tensorboard 和 Weights Biases。WB 实验跟踪器具有更多功能例如跟踪跨epoch的梯度和 logits。以下是配置示例data_configDataConfig(target[target],# 目标变量始终应为列表。仅回归支持多目标。多任务分类尚未实现。continuous_colsnum_col_names,categorical_colscat_col_names,)trainer_configTrainerConfig(auto_lr_findTrue,# 运行LRFinder自动推导学习率batch_size1024,max_epochs100,gpus1,# 使用的GPU索引。0表示CPU)optimizer_configOptimizerConfig()model_configCategoryEmbeddingModelConfig(taskclassification,layers1024-512-512,# 每层的节点数activationLeakyReLU,# 层间的激活函数learning_rate1e-3)模型初始化和训练定义好配置后需要使用这些配置初始化模型并调用fit方法。tabular_modelTabularModel(data_configdata_config,model_configmodel_config,optimizer_configoptimizer_config,trainer_configtrainer_config,)tabular_model.fit(traintrain,validationval)完成。模型将按指定的 epoch 数进行训练。已实现的模型列表带类别嵌入的前馈网络一个简单的前馈网络但为类别列添加了嵌入层。这与 fastai 的表格模型非常相似。NODE在 ICLR 2020 上提出的模型据作者称该模型在许多数据集上击败了经过良好调优的梯度提升模型。TabNet出自某研究机构的另一个模型它在多步决策过程中使用稀疏注意力来建模输出。要实现新模型请参阅“如何实现新模型”教程其中涵盖了基础和高级架构。在未见数据上评估模型要使用训练期间相同的指标/损失在新数据上评估模型可以使用evaluate方法。resulttabular_model.evaluate(test)示例输出-------------------------------------------------------------------------- DATALOADER:0 TEST RESULTS {test_accuracy: tensor(0.6924, devicecuda:0), train_accuracy: tensor(0.6051, devicecuda:0), train_loss: tensor(0.6258, devicecuda:0), valid_accuracy: tensor(0.7440, devicecuda:0), valid_loss: tensor(0.5769, devicecuda:0)} --------------------------------------------------------------------------对未见数据进行预测要获取预测结果的数据帧可以使用predict方法。这会将预测结果添加到传入的同一个数据帧中。对于分类问题会同时返回概率和以 0.5 为阈值的最终预测结果。pred_dftabular_model.predict(test)保存和加载模型可以保存模型并在之后加载用于推理。tabular_model.save_model(examples/basic)loaded_modelTabularModel.load_from_checkpoint(examples/basic)resultloaded_model.evaluate(test)代码、文档和贡献方式框架代码可在 GitHub 上获取。文档和教程可在 Read the Docs 上找到。非常欢迎贡献相关指南也已提供。相关工作fastai 是与 PyTorch Tabular 最接近的框架两者都基于 PyTorch。但 PyTorch Tabular 的不同之处在于其模块化和解耦的特性以及它对标准 PyTorch 和 PyTorch Lightning 组件的使用这使得采用新模型和修改代码比使用 fastai 容易得多。参考文献Sergei Popov, Stanislav Morozov, Artem Babenko. “Neural Oblivious Decision Ensembles for Deep Learning on Tabular Data”. arXiv:1909.06312 [cs.LG] (2019)Sercan O. Arik, Tomas Pfister. “TabNet: Attentive Interpretable Tabular Learning”. arXiv:1908.07442 (2019).后续计划作者将继续撰写独立的博客文章介绍 PyTorch Tabular 中目前已实现的不同模型。敬请期待。FINISHED更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手或者 我的个人博客 https://blog.qife122.com/对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享

相关新闻

Bria商用安全视觉AI模型登陆Replicate平台

Bria商用安全视觉AI模型登陆Replicate平台

近日,Replicate平台与Bria达成合作,正式引入一套商用安全的视觉AI模型套件,为企业及开发者提供负责任的生成式AI构建工具。 与大多数使用网络抓取数据训练的模型不同,Bria的模型完全基于来自某图像机构、某素材平台等的授权数据集…

2026/5/17 6:27:44 阅读更多 →
SpringCloud:Nacos配置管理

SpringCloud:Nacos配置管理

目录 1.Nacos配置管理 1.1.统一配置管理 1.1.1.在nacos中添加配置文件 1.1.2.从微服务拉取配置 1.2.配置热更新 1.2.1.方式一 1.2.2.方式二 1.3.配置共享 1)添加一个环境共享配置 2)在user-service中读取共享配置 3)运行两个UserAp…

2026/5/17 6:27:43 阅读更多 →
Matlab根据flac、pfc或其他软件导出的坐标及应力、位移数据再现云图 案例包括导出在f...

Matlab根据flac、pfc或其他软件导出的坐标及应力、位移数据再现云图 案例包括导出在f...

Matlab根据flac、pfc或其他软件导出的坐标及应力、位移数据再现云图 案例包括导出在flac6.0中导出位移的fish代码(也可以自己先准备软件导出的坐标数据及对应点的位移或应力数据,可根据需要自行修改为自己需要的云图数据)、matlab中读取三维坐…

2026/7/3 1:21:59 阅读更多 →

最新新闻

贝叶斯决策实战:从最小错误到最小风险,如何为你的AI模型选择最优策略?

贝叶斯决策实战:从最小错误到最小风险,如何为你的AI模型选择最优策略?

1. 贝叶斯决策:从直觉到数学公式第一次听说贝叶斯决策时,我正坐在工位上调试一个图像分类模型。当时遇到一个奇怪的现象:模型在测试集上准确率很高,但实际部署时总把一些重要客户照片误分类。主管走过来看了一眼说:&qu…

2026/7/5 12:07:44 阅读更多 →
SVM 核技巧实战:3步验证自定义核函数正定性(附Gram矩阵代码)

SVM 核技巧实战:3步验证自定义核函数正定性(附Gram矩阵代码)

SVM核函数实战:从零验证自定义核的正定性(附Python代码)引言在机器学习领域,支持向量机(SVM)因其出色的分类性能而广受青睐。但当面对非线性可分数据时,传统的线性SVM就显得力不从心。核技巧&am…

2026/7/5 12:07:44 阅读更多 →
Simulink RL Agent 模块实战:5步连接物理模型与DDPG智能体

Simulink RL Agent 模块实战:5步连接物理模型与DDPG智能体

Simulink RL Agent 模块实战:5步连接物理模型与DDPG智能体在工业控制和机器人领域,将物理系统模型与强化学习算法相结合已成为实现智能控制的重要途径。MATLAB/Simulink平台凭借其强大的建模能力和与强化学习工具箱的无缝集成,为工程师提供了…

2026/7/5 12:07:44 阅读更多 →
大模型训练实战:从入门到部署的完整指南

大模型训练实战:从入门到部署的完整指南

1. 大模型训练入门:为什么每个程序员都应该掌握这项技能 2026年的技术圈,不会训练大模型就像2010年不会写网页一样尴尬。我花了三个月从零开始啃下这块硬骨头,现在可以负责任地告诉你:训练自己的大模型没有想象中那么难&#xff0…

2026/7/5 12:05:44 阅读更多 →
TensorFlow模型优化:量化感知训练与剪枝实战指南

TensorFlow模型优化:量化感知训练与剪枝实战指南

1. 为什么需要量化感知训练和剪枝在移动端和嵌入式设备上部署深度学习模型时,我们常常面临两个核心挑战:模型体积过大和计算资源受限。一个典型的ResNet-50模型参数规模超过90MB,在树莓派这类设备上运行需要数秒的推理时间。这直接催生了模型…

2026/7/5 12:05:44 阅读更多 →
7个核心功能解析:WindowsCleaner如何彻底解决C盘空间不足问题

7个核心功能解析:WindowsCleaner如何彻底解决C盘空间不足问题

7个核心功能解析:WindowsCleaner如何彻底解决C盘空间不足问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner WindowsCleaner是一款专为Windows系统设…

2026/7/5 12:03:43 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻