Neural Oblivious Decision Ensembles for Deep Learning on Tabular Data

Sergei Popov, Stanislav Morozov, Artem Babenko
9/13/2019
cs.LGstat.ML

Official code: Qwicen/node (531 stars, MIT, last commit 2021-01-21). 1 more implementation below.

Abstract

Nowadays, deep neural networks (DNNs) have become the main instrument for machine learning tasks within a wide range of domains, including vision, NLP, and speech. Meanwhile, in an important case of heterogenous tabular data, the advantage of DNNs over shallow counterparts remains questionable. In particular, there is no sufficient evidence that deep learning machinery allows constructing methods that outperform gradient boosting decision trees (GBDT), which are often the top choice for tabular problems. In this paper, we introduce Neural Oblivious Decision Ensembles (NODE), a new deep learning architecture, designed to work with any tabular data. In a nutshell, the proposed NODE architecture generalizes ensembles of oblivious decision trees, but benefits from both end-to-end gradient-based optimization and the power of multi-layer hierarchical representation learning. With an extensive experimental comparison to the leading GBDT packages on a large number of tabular datasets, we demonstrate the advantage of the proposed NODE architecture, which outperforms the competitors on most of the tasks. We open-source the PyTorch implementation of NODE and believe that it will become a universal framework for machine learning on tabular data.

View on arXivView PDF

Code Implementations(2)

Qwicen/nodeOfficial100%
MIT

Neural Oblivious Decision Ensembles for Deep Learning on Tabular Data

53163Python, Jupyter NotebookAug 29, 20195 years agoMIT
anonICLR2020/nodeOfficial100%
289Python, Jupyter NotebookSep 12, 20197 years ago

Similar Papers

Cite this paper

@article{popov2019neural,
  title  = {Neural Oblivious Decision Ensembles for Deep Learning on Tabular Data},
  author = {Sergei Popov and Stanislav Morozov and Artem Babenko},
  year   = {2019},
  eprint = {1909.06312},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1909.06312}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1909.06312.svg)](https://codeofpaper.com/paper/1909.06312)

Discussion