{"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/arxiv-2606-16411","title":"Not all Jensen-Shannon Divergence Estimators are Equal","arxiv_id":"2606.16411","date":"2026-06-15","proceeding":null,"authors":["Alba Garrido","Alejandro Almodóvar","Mar Elizo","Patricia A. Apellániz","Santiago Zazo","Juan Parras"],"abstract":"The Jensen-Shannon divergence is widely reported as a scalar measure of fidelity for synthetic tabular data. Yet, in practice, it is estimated from finite samples using protocols that are often underspecified. This creates a measurement problem. Although the population divergence is well defined, the empirical value depends on the estimator family, sampling protocol, calibration, dimensionality, and class balance. We show that different protocols can yield non-comparable values: marginal-based estimators ignore dependencies in the joint distribution and can severely underestimate divergence, while classifier-based estimators capture joint structure but exhibit strong estimator dependence. We systematically study this behavior across controlled settings with reference divergences and real-world synthetic tabular benchmarks. Our analysis reveals dependence blindness in marginal estimators, prior-shift bias under class imbalance, and estimator sensitivity in high dimensions. To address prior shift, we derive a closed-form posterior correction for classifier-based Jensen-Shannon estimation. Our results show that empirical Jensen-Shannon divergence values are inherently protocol-dependent, making explicit specification of the estimation procedure necessary for meaningful comparison. We provide practical guidelines and an open-source tool for estimator-aware Jensen-Shannon evaluation.","url_abs":"https://arxiv.org/abs/2606.16411","url_pdf":"https://arxiv.org/pdf/2606.16411","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2606.16411","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2606.16411"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/AlbaGarridoLopezz/jensenshannondivergence","reach":null}],"summary":{"ran":7,"unverified":4},"by_repo_kind":{"found_in_text":{"samples":11,"ran":7,"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":"6572732fb03f3afe","entry":"build_paths","repo":"AlbaGarridoLopezz/jensenshannondivergence","repo_kind":"found_in_text","path":"src/jensenshannondivergence/utils.py","file_url":"https://github.com/AlbaGarridoLopezz/jensenshannondivergence/blob/HEAD/src/jensenshannondivergence/utils.py","link_basis":"first_harvest_node","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":"6572732fb03f3afe"}},{"code_sha256_prefix":"0c7fafe103023ed8","entry":"create_high_corr_bimodal_gm","repo":"AlbaGarridoLopezz/jensenshannondivergence","repo_kind":"found_in_text","path":"src/jensenshannondivergence/data_utils.py","file_url":"https://github.com/AlbaGarridoLopezz/jensenshannondivergence/blob/HEAD/src/jensenshannondivergence/data_utils.py","link_basis":"first_harvest_node","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":"0c7fafe103023ed8"}},{"code_sha256_prefix":"33d3b5a2bc949874","entry":"load_mvn","repo":"AlbaGarridoLopezz/jensenshannondivergence","repo_kind":"found_in_text","path":"src/jensenshannondivergence/data_utils.py","file_url":"https://github.com/AlbaGarridoLopezz/jensenshannondivergence/blob/HEAD/src/jensenshannondivergence/data_utils.py","link_basis":"first_harvest_node","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":"33d3b5a2bc949874"}},{"code_sha256_prefix":"203baf594013c088","entry":"model_suffix","repo":"AlbaGarridoLopezz/jensenshannondivergence","repo_kind":"found_in_text","path":"src/jensenshannondivergence/utils.py","file_url":"https://github.com/AlbaGarridoLopezz/jensenshannondivergence/blob/HEAD/src/jensenshannondivergence/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"203baf594013c088"}},{"code_sha256_prefix":"61d09d927eea4131","entry":"normalize_discriminator_type","repo":"AlbaGarridoLopezz/jensenshannondivergence","repo_kind":"found_in_text","path":"src/jensenshannondivergence/estimators.py","file_url":"https://github.com/AlbaGarridoLopezz/jensenshannondivergence/blob/HEAD/src/jensenshannondivergence/estimators.py","link_basis":"first_harvest_node","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":"61d09d927eea4131"}},{"code_sha256_prefix":"f13d9e5f6a2d27f7","entry":"tensor_to_dataloader","repo":"AlbaGarridoLopezz/jensenshannondivergence","repo_kind":"found_in_text","path":"src/jensenshannondivergence/estimator/est_utils.py","file_url":"https://github.com/AlbaGarridoLopezz/jensenshannondivergence/blob/HEAD/src/jensenshannondivergence/estimator/est_utils.py","link_basis":"first_harvest_node","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":"f13d9e5f6a2d27f7"}},{"code_sha256_prefix":"ca6f4523676c7895","entry":"to_dataloader","repo":"AlbaGarridoLopezz/jensenshannondivergence","repo_kind":"found_in_text","path":"src/jensenshannondivergence/estimator/est_utils.py","file_url":"https://github.com/AlbaGarridoLopezz/jensenshannondivergence/blob/HEAD/src/jensenshannondivergence/estimator/est_utils.py","link_basis":"first_harvest_node","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":"ca6f4523676c7895"}},{"code_sha256_prefix":"d3990282c2ffd9f4","entry":"create_independent_gm","repo":"AlbaGarridoLopezz/jensenshannondivergence","repo_kind":"found_in_text","path":"src/jensenshannondivergence/data_utils.py","file_url":"https://github.com/AlbaGarridoLopezz/jensenshannondivergence/blob/HEAD/src/jensenshannondivergence/data_utils.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":"d3990282c2ffd9f4"}},{"code_sha256_prefix":"fbfde0ba87f77707","entry":"detection_validation","repo":"AlbaGarridoLopezz/jensenshannondivergence","repo_kind":"found_in_text","path":"src/jensenshannondivergence/estimator/divergence.py","file_url":"https://github.com/AlbaGarridoLopezz/jensenshannondivergence/blob/HEAD/src/jensenshannondivergence/estimator/divergence.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":"fbfde0ba87f77707"}},{"code_sha256_prefix":"893abd91d1a6f824","entry":"estimate_jensen_shannon","repo":"AlbaGarridoLopezz/jensenshannondivergence","repo_kind":"found_in_text","path":"src/jensenshannondivergence/estimators.py","file_url":"https://github.com/AlbaGarridoLopezz/jensenshannondivergence/blob/HEAD/src/jensenshannondivergence/estimators.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":"893abd91d1a6f824"}},{"code_sha256_prefix":"dcb2b8e38f788382","entry":"plot_discriminators_js_mean_error_boxplot","repo":"AlbaGarridoLopezz/jensenshannondivergence","repo_kind":"found_in_text","path":"src/jensenshannondivergence/utils.py","file_url":"https://github.com/AlbaGarridoLopezz/jensenshannondivergence/blob/HEAD/src/jensenshannondivergence/utils.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":"dcb2b8e38f788382"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}