{"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-2605-21060","title":"Divide et Calibra: Multiclass Local Calibration via Vector Quantization","arxiv_id":"2605.21060","date":"2026-05-20","proceeding":null,"authors":["Cesare Barbera","Lorenzo Perini","Giovanni De Toni","Andrea Passerini","Andrea Pugnana"],"abstract":"Accurate and well-calibrated Machine Learning (ML) models are mandatory in high-stakes settings, yet effective multiclass calibration remains challenging: global approaches assume calibration errors are homogeneous across the latent space, while local methods often rely on latent-space dimensionality reduction, which leads to information loss. To address these issues, we propose a compositional approach to multiclass calibration, where region-specific calibration maps are constructed from shared codeword-dependent factors. We instantiate this idea via Vector Quantization (VQ), which induces a structured partition of the representation space, and an indexed parameterization of Dirichlet concentrations that enables parameter sharing across regions. Our approach learns heterogeneous calibration maps that generalize well even to sparse regions of the latent space. Experiments on benchmark datasets show significant improvements in local calibration while maintaining competitive global calibration and predictive performance.","url_abs":"https://arxiv.org/abs/2605.21060","url_pdf":"https://arxiv.org/pdf/2605.21060","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=2605.21060","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2605.21060"}},"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/Cesbar99/Divide-et-Calibra","reach":null}],"summary":{"ran_draft_wrong":1,"ran_honours":1,"unverified":2},"by_repo_kind":{"found_in_text":{"samples":4,"ran":2,"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":4,"samples":[{"code_sha256_prefix":"57352704211bd9a2","entry":"log_multivariate_beta","repo":"Cesbar99/Divide-et-Calibra","repo_kind":"found_in_text","path":"src/calibrator/VQCAL_trainer.py","file_url":"https://github.com/Cesbar99/Divide-et-Calibra/blob/HEAD/src/calibrator/VQCAL_trainer.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"57352704211bd9a2"}},{"code_sha256_prefix":"1956cc11dcb88492","entry":"softplus_inv","repo":"Cesbar99/Divide-et-Calibra","repo_kind":"found_in_text","path":"src/calibrator/VQCAL_trainer.py","file_url":"https://github.com/Cesbar99/Divide-et-Calibra/blob/HEAD/src/calibrator/VQCAL_trainer.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1956cc11dcb88492"}},{"code_sha256_prefix":"93b621123a173405","entry":"VQCalibrator","repo":"Cesbar99/Divide-et-Calibra","repo_kind":"found_in_text","path":"src/calibrator/VQCAL_trainer.py","file_url":"https://github.com/Cesbar99/Divide-et-Calibra/blob/HEAD/src/calibrator/VQCAL_trainer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"93b621123a173405"}},{"code_sha256_prefix":"d396f739a29f3806","entry":"VQDirCal","repo":"Cesbar99/Divide-et-Calibra","repo_kind":"found_in_text","path":"src/calibrator/VQCAL_trainer.py","file_url":"https://github.com/Cesbar99/Divide-et-Calibra/blob/HEAD/src/calibrator/VQCAL_trainer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d396f739a29f3806"}}]},"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}