Voltar ao ranking

pytorch-tabular/pytorch_tabular

Pythonpytorch-tabular.readthedocs.io

A unified framework for Deep Learning Models on tabular data

tabular-datadeep-learningpytorchpytorch-lightninghacktoberfestmachine-learning
Crescimento de estrelas
Estrelas
1.7k
Forks
177
Crescimento semanal
Issues
17
5001k1.5k
dez. de 2020out. de 2022set. de 2024jul. de 2026
ArtefatosPyPIpip install pytorch_tabular
README

PyTorch Tabular

PyTorch Tabular provides a unified interface to deep learning architectures for tabular data. It provides a high-level API and uses PyTorch Lightning to scale training on GPU or CPU, with automatic logging.

Documentation · Tutorials · Release Notes
Open Source MIT GC.OS Sponsored contributions welcome
Tutorials Open In Colab
Community !discord !slack
CI/CD github-actions readthedocs
Code !pypi !conda !python-versions !black
Downloads PyPI - Downloads PyPI - Downloads Downloads
Citation DOI

PyTorch Tabular aims to make Deep Learning with Tabular data easy and accessible to real-world cases and research alike. The core principles behind the design of the library are:

  • Low Resistance Usability
  • Easy Customization
  • Scalable and Easier to Deploy

It has been built on the shoulders of giants like PyTorch(obviously), and PyTorch Lightning.

Table of Contents

Installation

Although the installation includes PyTorch, the best and recommended way is to first install PyTorch from here, picking up the right CUDA version for your machine.

Once, you have got Pytorch installed, just use:

pip install -U “pytorch_tabular[extra]”

to install the complete library with extra dependencies (Weights&Biases & Plotly).

And :

pip install -U “pytorch_tabular”

for the bare essentials.

The sources for pytorch_tabular can be downloaded from the Github repo_.

You can either clone the public repository:

git clone git://github.com/manujosephv/pytorch_tabular

Once you have a copy of the source, you can install it with:

cd pytorch_tabular && pip install .[extra]

Documentation

For complete Documentation with tutorials visit ReadTheDocs

Available Models

  • FeedForward Network with Category Embedding is a simple FF network, but with an Embedding layers for the categorical columns.
  • Neural Oblivious Decision Ensembles for Deep Learning on Tabular Data is a model presented in ICLR 2020 and according to the authors have beaten well-tuned Gradient Boosting models on many datasets.
  • TabNet: Attentive Interpretable Tabular Learning is another model coming out of Google Research which uses Sparse Attention in multiple steps of decision making to model the output.
  • Mixture Density Networks is a regression model which uses gaussian components to approximate the target function and provide a probabilistic prediction out of the box.
  • AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks is a model which tries to learn interactions between the features in an automated way and create a better representation and then use this representation in downstream task
  • TabTransformer is an adaptation of the Transformer model for Tabular Data which creates contextual representations for categorical features.
  • FT Transformer from Revisiting Deep Learning Models for Tabular Data
  • Gated Additive Tree Ensemble is a novel high-performance, parameter and computationally efficient deep learning architecture for tabular data. GATE uses a gating mechanism, inspired from GRU, as a feature representation learning unit with an in-built feature selection mechanism. We combine it with an ensemble of differentiable, non-linear decision trees, re-weighted with simple self-attention to predict our desired output.
  • Gated Adaptive Network for Deep Automated Learning of Features (GANDALF) is pared-down version of GATE which is more efficient and performing than GATE. GANDALF makes GFLUs the main learning unit, also introducing some speed-ups in the process. With very minimal hyperparameters to tune, this becomes an easy to use and tune model.
  • DANETs: Deep Abstract Networks for Tabular Data Classification and Regression is a novel and flexible neural component for tabular data, called Abstract Layer (AbstLay), which learns to explicitly group correlative input features and generate higher-level features for semantics abstraction. A special basic block is built using AbstLays, and we construct a family of Deep Abstract Networks (DANets) for tabular data classification and regression by stacking such blocks.

Semi-Supervised Learning

  • Denoising AutoEncoder is an autoencoder which learns robust feature representation, to compensate any noise in the dataset.

Implement Custom Models

To implement new models, see the How to implement new models tutorial. It covers basic as well as advanced architectures.

Usage

from pytorch_tabular import TabularModel
from pytorch_tabular.models import CategoryEmbeddingModelConfig
from pytorch_tabular.config import (
    DataConfig,
    OptimizerConfig,
    TrainerConfig,
    ExperimentConfig,
)

data_config = DataConfig(
    target=[
        "target"
    ],  # target should always be a list.
    continuous_cols=num_col_names,
    categorical_cols=cat_col_names,
)
trainer_config = TrainerConfig(
    auto_lr_find=True,  # Runs the LRFinder to automatically derive a learning rate
    batch_size=1024,
    max_epochs=100,
)
optimizer_config = OptimizerConfig()

model_config = CategoryEmbeddingModelConfig(
    task="classification",
    layers="1024-512-512",  # Number of nodes in each layer
    activation="LeakyReLU",  # Activation between each layers
    learning_rate=1e-3,
)

tabular_model = TabularModel(
    data_config=data_config,
    model_config=model_config,
    optimizer_config=optimizer_config,
    trainer_config=trainer_config,
)
tabular_model.fit(train=train, validation=val)
result = tabular_model.evaluate(test)
pred_df = tabular_model.predict(test)
tabular_model.save_model("examples/basic")
loaded_model = TabularModel.load_model("examples/basic")

Blogs

Future Roadmap(Contributions are Welcome)

  1. Integrate Optuna Hyperparameter Tuning
  2. Migrate Datamodule to Polars or NVTabular for faster data loading and to handle larger than RAM datasets.
  3. Add GaussRank as Feature Transformation
  4. Have a scikit-learn compatible API
  5. Enable support for multi-label classification
  6. Keep adding more architectures

Contributors

manujosephv
Manu Joseph
Borda
Jirka Borovec
wsad1
Jinu Sunil
ProgramadorArtificial
Programador Artificial
sorenmacbeth
Soren Macbeth
ArozHada
Aroj Hada
fonnesbeck
Chris Fonnesbeck
snehilchatterjee
Snehil Chatterjee
jxtrbtk
Null
abhisharsinha
Abhishar Sinha
ndrsfel
Andreas
charitarthchugh
Charitarth Chugh
EeyoreLee
Earlee
JulianRein
Null
krshrimali
Kushashwa Ravi Shrimali
Actis92
Luca Actis Grosso
sgbaird
Sterling G. Baird
furyhawk
Teck Meng
yinyunie
Yinyu Nie
YonyBresler
YonyBresler
HernandoR
Liu Zhen
enifeder
enifeder
taimo3810
taimo

Citation

If you use PyTorch Tabular for a scientific publication, we would appreciate citations to the published software and the following paper:

@misc{joseph2021pytorch,
      title={PyTorch Tabular: A Framework for Deep Learning with Tabular Data},
      author={Manu Joseph},
      year={2021},
      eprint={2104.13638},
      archivePrefix={arXiv},
      primaryClass={cs.LG}
}
  • Zenodo Software Citation
@software{manu_joseph_2023_7554473,
  author       = {Manu Joseph and
                  Jinu Sunil and
                  Jiri Borovec and
                  Chris Fonnesbeck and
                  jxtrbtk and
                  Andreas and
                  JulianRein and
                  Kushashwa Ravi Shrimali and
                  Luca Actis Grosso and
                  Sterling G. Baird and
                  Yinyu Nie},
  title        = {manujosephv/pytorch\_tabular: v1.0.1},
  month        = jan,
  year         = 2023,
  publisher    = {Zenodo},
  version      = {v1.0.1},
  doi          = {10.5281/zenodo.7554473},
  url          = {https://doi.org/10.5281/zenodo.7554473}
}
Repositórios relacionados
bvaughn/react-virtualized

React components for efficiently rendering large lists and tabular data

JavaScriptnpmMIT Licensereactreact-components
bvaughn.github.io/react-virtualized/
27.1k3k
autogluon/autogluon

Fast and Accurate ML in 3 Lines of Code

PythonPyPIApache License 2.0automlmachine-learning
auto.gluon.ai
10.5k1.2k
johnkerl/miller

Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON

GoGo ModulesOtherdata-processingdata-cleaning
miller.readthedocs.io
10k238
saulpw/visidata

A terminal spreadsheet multitool for discovering and arranging data

PythonPyPIGNU General Public License v3.0pythoncli
visidata.org
9.2k353
vaexio/vaex

Out-of-Core hybrid Apache Arrow/NumPy DataFrame for Python, ML, visualization and exploration of big tabular data at a billion rows per second 🚀

PythonPyPIMIT Licensedataframepython
vaex.io
8.5k603
PriorLabs/TabPFN

⚡ TabPFN: Foundation Model for Tabular Data ⚡

PythonPyPIOtherdata-sciencefoundation-models
priorlabs.ai
7.6k759
microsoft/FLAML

A fast library for AutoML and tuning. Join our Discord: https://discord.gg/Cppx2vSPVP.

Jupyter NotebookMIT Licenseautomlhyperparam
microsoft.github.io/FLAML/
4.4k558
inokawa/virtua

A zero-config, fast and small (~3kB) virtual list (and grid) component for React, Vue, Solid and Svelte.

TypeScriptnpmMIT Licenseinfinite-scrollperformance
inokawa.github.io/virtua/
3.6k110
antonycourtney/tad

A desktop application for viewing and analyzing tabular data

TypeScriptnpmMIT Licensedesktop-applicationpivots
tadviewer.com
3.5k131
dreamquark-ai/tabnet

PyTorch implementation of TabNet paper : https://arxiv.org/pdf/1908.07442.pdf

PythonPyPIMIT Licensepytorchdeep-neural-networks
dreamquark-ai.github.io/tabnet/
3k516
PhoebusSi/Alpaca-CoT

We unified the interfaces of instruction-tuning data (e.g., CoT data), multiple LLMs and parameter-efficient methods (e.g., lora, p-tuning) together for easy use. We welcome open-source enthusiasts to initiate any meaningful PR on this repo and integrate as many LLM related technologies as possible. 我们打造了方便研究人员上手和使用大模型等微调平台,我们欢迎开源爱好者发起任何有意义的pr!

Jupyter NotebookApache License 2.0chatglmllama
2.8k249
nhn/tui.grid

🍞🔡 The Powerful Component to Display and Edit Data. Experience the Ultimate Data Transformer!

TypeScriptnpmMIT Licensedatagridtreegrid
ui.toast.com/tui-grid/
2.6k411