{"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/tabddpm-modelling-tabular-data-with-diffusion","title":"TabDDPM: Modelling Tabular Data with Diffusion Models","arxiv_id":"2209.15421","date":"2022-09-30","proceeding":null,"authors":["Akim Kotelnikov","Dmitry Baranchuk","Ivan Rubachev","Artem Babenko"],"abstract":"Denoising diffusion probabilistic models are currently becoming the leading paradigm of generative modeling for many important data modalities. Being the most prevalent in the computer vision community, diffusion models have also recently gained some attention in other domains, including speech, NLP, and graph-like data. In this work, we investigate if the framework of diffusion models can be advantageous for general tabular problems, where datapoints are typically represented by vectors of heterogeneous features. The inherent heterogeneity of tabular data makes it quite challenging for accurate modeling, since the individual features can be of completely different nature, i.e., some of them can be continuous and some of them can be discrete. To address such data types, we introduce TabDDPM -- a diffusion model that can be universally applied to any tabular dataset and handles any type of feature. We extensively evaluate TabDDPM on a wide set of benchmarks and demonstrate its superiority over existing GAN/VAE alternatives, which is consistent with the advantage of diffusion models in other fields. Additionally, we show that TabDDPM is eligible for privacy-oriented setups, where the original datapoints cannot be publicly shared.","url_abs":"https://arxiv.org/abs/2209.15421v2","url_pdf":"https://arxiv.org/pdf/2209.15421v2.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":"tabddpm-modelling-tabular-data-with-diffusion","repo_url":"https://github.com/rotot0/tab-ddpm","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"tabddpm-modelling-tabular-data-with-diffusion","repo_url":"https://github.com/yandex-research/tab-ddpm","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"tabddpm-modelling-tabular-data-with-diffusion","repo_url":"https://github.com/yifei-liu-stat/syn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2209.15421","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2209.15421"}},"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/rotot0/tab-ddpm","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yifei-liu-stat/syn","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yandex-research/tab-ddpm","reach":null}],"summary":{"ran_honours":2,"ran_draft_wrong":3,"ran_fixture":2,"unverified":15},"by_repo_kind":{"official":{"samples":16,"ran":7,"repositories":1},"listed":{"samples":6,"ran":0,"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":"9deab2a47adbf3b7","entry":"approx_standard_normal_cdf","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"tab_ddpm/utils.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/tab_ddpm/utils.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9deab2a47adbf3b7"}},{"code_sha256_prefix":"6cdc8772f5db6f48","entry":"betas_for_alpha_bar","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"tab_ddpm/gaussian_multinomial_diffsuion.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/tab_ddpm/gaussian_multinomial_diffsuion.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6cdc8772f5db6f48"}},{"code_sha256_prefix":"6b6f39a3cb3edfa0","entry":"discretized_gaussian_log_likelihood","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"tab_ddpm/utils.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/tab_ddpm/utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6b6f39a3cb3edfa0"}},{"code_sha256_prefix":"49f8fe0655f00ee5","entry":"geglu","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"tab_ddpm/modules.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/tab_ddpm/modules.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"49f8fe0655f00ee5"}},{"code_sha256_prefix":"141937afc98f8d1e","entry":"get_named_beta_schedule","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"tab_ddpm/gaussian_multinomial_diffsuion.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/tab_ddpm/gaussian_multinomial_diffsuion.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"141937afc98f8d1e"}},{"code_sha256_prefix":"4707efa98ac6b989","entry":"normal_kl","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"tab_ddpm/utils.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/tab_ddpm/utils.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4707efa98ac6b989"}},{"code_sha256_prefix":"58bd3831c7fb6729","entry":"reglu","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"tab_ddpm/modules.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/tab_ddpm/modules.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"58bd3831c7fb6729"}},{"code_sha256_prefix":"f0c2655e22e2ed2d","entry":"calculate_rmse","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"lib/metrics.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/lib/metrics.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":"f0c2655e22e2ed2d"}},{"code_sha256_prefix":"52f84e39cc40d193","entry":"concat_data","repo":"yifei-liu-stat/syn","repo_kind":"listed","path":"tab-ddpm/utils/utils_syn.py","file_url":"https://github.com/yifei-liu-stat/syn/blob/HEAD/tab-ddpm/utils/utils_syn.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":"52f84e39cc40d193"}},{"code_sha256_prefix":"61b240fd493b6733","entry":"cos_sin","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"lib/deep.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/lib/deep.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":"61b240fd493b6733"}},{"code_sha256_prefix":"f1fa7c754e7515d6","entry":"generate_imputation","repo":"yifei-liu-stat/syn","repo_kind":"listed","path":"conditional/utils/ddpm.py","file_url":"https://github.com/yifei-liu-stat/syn/blob/HEAD/conditional/utils/ddpm.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":"f1fa7c754e7515d6"}},{"code_sha256_prefix":"0ba9a28441c16b29","entry":"generate_samples","repo":"yifei-liu-stat/syn","repo_kind":"listed","path":"conditional/utils/ddpm.py","file_url":"https://github.com/yifei-liu-stat/syn/blob/HEAD/conditional/utils/ddpm.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":"0ba9a28441c16b29"}},{"code_sha256_prefix":"4d744cd924d61d6f","entry":"get_category_sizes","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"lib/data.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/lib/data.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":"4d744cd924d61d6f"}},{"code_sha256_prefix":"4bb318a745ffe343","entry":"get_n_parameters","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"lib/deep.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/lib/deep.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":"4bb318a745ffe343"}},{"code_sha256_prefix":"eac7b341abfe7944","entry":"get_path","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"lib/env.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/lib/env.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":"eac7b341abfe7944"}},{"code_sha256_prefix":"170e57097113c6f4","entry":"get_relative_path","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"lib/env.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/lib/env.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":"170e57097113c6f4"}},{"code_sha256_prefix":"c48a02ede7b161d4","entry":"imdb_jsonl_to_np","repo":"yifei-liu-stat/syn","repo_kind":"listed","path":"sentiment/imdb_distillbert.py","file_url":"https://github.com/yifei-liu-stat/syn/blob/HEAD/sentiment/imdb_distillbert.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":"c48a02ede7b161d4"}},{"code_sha256_prefix":"82071b4852fbdb59","entry":"pack_config","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"lib/util.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/lib/util.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":"82071b4852fbdb59"}},{"code_sha256_prefix":"d9a0fc20c06a8d77","entry":"prepare_dl","repo":"yifei-liu-stat/syn","repo_kind":"listed","path":"sentiment/imdb_distillbert.py","file_url":"https://github.com/yifei-liu-stat/syn/blob/HEAD/sentiment/imdb_distillbert.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":"d9a0fc20c06a8d77"}},{"code_sha256_prefix":"fe2398f0b08da143","entry":"timestep_embedding","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"tab_ddpm/modules.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/tab_ddpm/modules.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":"fe2398f0b08da143"}},{"code_sha256_prefix":"80360f1cea3fe1f1","entry":"timestep_embedding","repo":"yifei-liu-stat/syn","repo_kind":"listed","path":"conditional/utils/utils_model.py","file_url":"https://github.com/yifei-liu-stat/syn/blob/HEAD/conditional/utils/utils_model.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":"80360f1cea3fe1f1"}},{"code_sha256_prefix":"3a4a181a3fa716f2","entry":"unpack_config","repo":"rotot0/tab-ddpm","repo_kind":"official","path":"lib/util.py","file_url":"https://github.com/rotot0/tab-ddpm/blob/HEAD/lib/util.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":"3a4a181a3fa716f2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}