{"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/tabred-a-benchmark-of-tabular-machine","title":"TabReD: Analyzing Pitfalls and Filling the Gaps in Tabular Deep Learning Benchmarks","arxiv_id":"2406.19380","date":"2024-06-27","proceeding":null,"authors":["Ivan Rubachev","Nikolay Kartashev","Yury Gorishniy","Artem Babenko"],"abstract":"Advances in machine learning research drive progress in real-world applications. To ensure this progress, it is important to understand the potential pitfalls on the way from a novel method's success on academic benchmarks to its practical deployment. In this work, we analyze existing tabular benchmarks and find two common characteristics of tabular data in typical industrial applications that are underrepresented in the datasets usually used for evaluation in the literature. First, in real-world deployment scenarios, distribution of data often changes over time. To account for this distribution drift, time-based train/test splits should be used in evaluation. However, popular tabular datasets often lack timestamp metadata to enable such evaluation. Second, a considerable portion of datasets in production settings stem from extensive data acquisition and feature engineering pipelines. This can have an impact on the absolute and relative number of predictive, uninformative, and correlated features compared to academic datasets. In this work, we aim to understand how recent research advances in tabular deep learning transfer to these underrepresented conditions. To this end, we introduce TabReD -- a collection of eight industry-grade tabular datasets. We reassess a large number of tabular ML models and techniques on TabReD. We demonstrate that evaluation on time-based data splits leads to different methods ranking, compared to evaluation on random splits, which are common in current benchmarks. Furthermore, simple MLP-like architectures and GBDT show the best results on the TabReD datasets, while other methods are less effective in the new setting.","url_abs":"https://arxiv.org/abs/2406.19380v4","url_pdf":"https://arxiv.org/pdf/2406.19380v4.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":"tabred-a-benchmark-of-tabular-machine","repo_url":"https://github.com/yandex-research/tabred","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"tabred-a-benchmark-of-tabular-machine","repo_url":"https://github.com/yandex-research/tabm","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"feature-engineering","task_name":"Feature Engineering"},{"task_slug":"model-selection","task_name":"Model Selection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2406.19380","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.19380"}},"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/yandex-research/tabm","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yandex-research/tabred","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":8,"unverified":5},"by_repo_kind":{"official":{"samples":13,"ran":8,"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":"18f6c81e574fd090","entry":"aggregate_features","repo":"yandex-research/tabred","repo_kind":"official","path":"preprocessing/homecredit.py","file_url":"https://github.com/yandex-research/tabred/blob/HEAD/preprocessing/homecredit.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"18f6c81e574fd090"}},{"code_sha256_prefix":"42220bbf70d4a3b4","entry":"create_report","repo":"yandex-research/tabred","repo_kind":"official","path":"paper/lib/util.py","file_url":"https://github.com/yandex-research/tabred/blob/HEAD/paper/lib/util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"42220bbf70d4a3b4"}},{"code_sha256_prefix":"da825b5feb576069","entry":"dataset_names","repo":"yandex-research/tabred","repo_kind":"official","path":"src/tabred/registry.py","file_url":"https://github.com/yandex-research/tabred/blob/HEAD/src/tabred/registry.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"da825b5feb576069"}},{"code_sha256_prefix":"dcc5dc2ef0f156ca","entry":"get_d_out","repo":"yandex-research/tabred","repo_kind":"official","path":"paper/lib/deep.py","file_url":"https://github.com/yandex-research/tabred/blob/HEAD/paper/lib/deep.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"dcc5dc2ef0f156ca"}},{"code_sha256_prefix":"7062a0ffe794cce7","entry":"get_path","repo":"yandex-research/tabred","repo_kind":"official","path":"paper/lib/util.py","file_url":"https://github.com/yandex-research/tabred/blob/HEAD/paper/lib/util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7062a0ffe794cce7"}},{"code_sha256_prefix":"48eabfd5d25a7ee1","entry":"get_raw_files","repo":"yandex-research/tabred","repo_kind":"official","path":"src/tabred/registry.py","file_url":"https://github.com/yandex-research/tabred/blob/HEAD/src/tabred/registry.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"48eabfd5d25a7ee1"}},{"code_sha256_prefix":"920f5bb847538a7c","entry":"set_table_dtypes","repo":"yandex-research/tabred","repo_kind":"official","path":"preprocessing/homecredit.py","file_url":"https://github.com/yandex-research/tabred/blob/HEAD/preprocessing/homecredit.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"920f5bb847538a7c"}},{"code_sha256_prefix":"d863dd3a62274021","entry":"start","repo":"yandex-research/tabred","repo_kind":"official","path":"paper/lib/util.py","file_url":"https://github.com/yandex-research/tabred/blob/HEAD/paper/lib/util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d863dd3a62274021"}},{"code_sha256_prefix":"94ae15701c64f076","entry":"competition_slugs","repo":"yandex-research/tabred","repo_kind":"official","path":"src/tabred/registry.py","file_url":"https://github.com/yandex-research/tabred/blob/HEAD/src/tabred/registry.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"94ae15701c64f076"}},{"code_sha256_prefix":"4bb318a745ffe343","entry":"get_n_parameters","repo":"yandex-research/tabred","repo_kind":"official","path":"paper/lib/deep.py","file_url":"https://github.com/yandex-research/tabred/blob/HEAD/paper/lib/deep.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4bb318a745ffe343"}},{"code_sha256_prefix":"0d04eeccf62abd98","entry":"main","repo":"yandex-research/tabred","repo_kind":"official","path":"preprocessing/ecom_offers.py","file_url":"https://github.com/yandex-research/tabred/blob/HEAD/preprocessing/ecom_offers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0d04eeccf62abd98"}},{"code_sha256_prefix":"c5805b170effb016","entry":"main","repo":"yandex-research/tabred","repo_kind":"official","path":"preprocessing/homesite.py","file_url":"https://github.com/yandex-research/tabred/blob/HEAD/preprocessing/homesite.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c5805b170effb016"}},{"code_sha256_prefix":"1bde374b2394fd5e","entry":"read_tables","repo":"yandex-research/tabred","repo_kind":"official","path":"preprocessing/homecredit.py","file_url":"https://github.com/yandex-research/tabred/blob/HEAD/preprocessing/homecredit.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1bde374b2394fd5e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}