{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/neural-oblivious-decision-ensembles-for-deep","title":"Neural Oblivious Decision Ensembles for Deep Learning on Tabular Data","arxiv_id":"1909.06312","date":"2019-09-13","proceeding":"ICLR 2020 1","authors":["Sergei Popov","Stanislav Morozov","Artem Babenko"],"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.","url_abs":"https://arxiv.org/abs/1909.06312v2","url_pdf":"https://arxiv.org/pdf/1909.06312v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"neural-oblivious-decision-ensembles-for-deep","repo_url":"https://github.com/Qwicen/node","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"neural-oblivious-decision-ensembles-for-deep","repo_url":"https://github.com/anonICLR2020/node","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"neural-oblivious-decision-ensembles-for-deep","repo_url":"https://github.com/COMP6248-Reproducability-Challenge/NODE_FOR_DL_ON_TABULAR_DATA","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"neural-oblivious-decision-ensembles-for-deep","repo_url":"https://github.com/hananlibpost/ml_final_project","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"neural-oblivious-decision-ensembles-for-deep","repo_url":"https://github.com/manujosephv/pytorch_tabular","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"machine-learning","task_name":"BIG-bench Machine Learning"},{"task_slug":"deep-learning","task_name":"Deep Learning"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[{"method_slug":"node","method_name":"NODE"}],"datasets_introduced":[],"methods_introduced":[{"slug":"node","name":"NODE","full_name":"Neural Oblivious Decision Ensembles"}],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=1909.06312","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1909.06312"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/COMP6248-Reproducability-Challenge/NODE_FOR_DL_ON_TABULAR_DATA","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Qwicen/node","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/anonICLR2020/node","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/hananlibpost/ml_final_project","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/manujosephv/pytorch_tabular","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":1,"unverified":6},"by_repo_kind":{"official":{"samples":7,"ran":1,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"c169a4c49b79cc3e","entry":"to_one_hot","repo":"Qwicen/node","repo_kind":"official","path":"lib/nn_utils.py","file_url":"https://github.com/Qwicen/node/blob/HEAD/lib/nn_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c169a4c49b79cc3e"}},{"code_sha256_prefix":"05c9ea23ab69917c","entry":"check_numpy","repo":"Qwicen/node","repo_kind":"official","path":"lib/utils.py","file_url":"https://github.com/Qwicen/node/blob/HEAD/lib/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"05c9ea23ab69917c"}},{"code_sha256_prefix":"4df0769f954f1705","entry":"download","repo":"Qwicen/node","repo_kind":"official","path":"lib/utils.py","file_url":"https://github.com/Qwicen/node/blob/HEAD/lib/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4df0769f954f1705"}},{"code_sha256_prefix":"0b9434b9405a87e6","entry":"fetch_A9A","repo":"Qwicen/node","repo_kind":"official","path":"lib/data.py","file_url":"https://github.com/Qwicen/node/blob/HEAD/lib/data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0b9434b9405a87e6"}},{"code_sha256_prefix":"85c740e9b8c6f1bb","entry":"fetch_EPSILON","repo":"Qwicen/node","repo_kind":"official","path":"lib/data.py","file_url":"https://github.com/Qwicen/node/blob/HEAD/lib/data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"85c740e9b8c6f1bb"}},{"code_sha256_prefix":"06f2d4a521b52ed5","entry":"fetch_PROTEIN","repo":"Qwicen/node","repo_kind":"official","path":"lib/data.py","file_url":"https://github.com/Qwicen/node/blob/HEAD/lib/data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"06f2d4a521b52ed5"}},{"code_sha256_prefix":"49f6bbe3d00bcf2a","entry":"process_in_chunks","repo":"Qwicen/node","repo_kind":"official","path":"lib/utils.py","file_url":"https://github.com/Qwicen/node/blob/HEAD/lib/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"49f6bbe3d00bcf2a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}