{"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/certifying-some-distributional-fairness-with","title":"Certifying Some Distributional Fairness with Subpopulation Decomposition","arxiv_id":"2205.15494","date":"2022-05-31","proceeding":null,"authors":["Mintong Kang","Linyi Li","Maurice Weber","Yang Liu","Ce Zhang","Bo Li"],"abstract":"Extensive efforts have been made to understand and improve the fairness of machine learning models based on observational metrics, especially in high-stakes domains such as medical insurance, education, and hiring decisions. However, there is a lack of certified fairness considering the end-to-end performance of an ML model. In this paper, we first formulate the certified fairness of an ML model trained on a given data distribution as an optimization problem based on the model performance loss bound on a fairness constrained distribution, which is within bounded distributional distance with the training distribution. We then propose a general fairness certification framework and instantiate it for both sensitive shifting and general shifting scenarios. In particular, we propose to solve the optimization problem by decomposing the original data distribution into analytical subpopulations and proving the convexity of the subproblems to solve them. We evaluate our certified fairness on six real-world datasets and show that our certification is tight in the sensitive shifting scenario and provides non-trivial certification under general shifting. Our framework is flexible to integrate additional non-skewness constraints and we show that it provides even tighter certification under different real-world scenarios. We also compare our certified fairness bound with adapted existing distributional robustness bounds on Gaussian data and demonstrate that our method is significantly tighter.","url_abs":"https://arxiv.org/abs/2205.15494v2","url_pdf":"https://arxiv.org/pdf/2205.15494v2.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":"certifying-some-distributional-fairness-with","repo_url":"https://github.com/ai-secure/certified-fairness","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"fairness","task_name":"Fairness"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2205.15494","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2205.15494"}},"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/ai-secure/certified-fairness","reach":null}],"summary":{"ran_draft_wrong":1,"ran_fixture":1,"unverified":1},"by_repo_kind":{"official":{"samples":3,"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":3,"samples":[{"code_sha256_prefix":"2a73764ccea97aaf","entry":"custom_kl_div","repo":"ai-secure/certified-fairness","repo_kind":"official","path":"covariate_shifting_train_and_test.py","file_url":"https://github.com/ai-secure/certified-fairness/blob/HEAD/covariate_shifting_train_and_test.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2a73764ccea97aaf"}},{"code_sha256_prefix":"53e543946261c474","entry":"fairness_upper_bound_general_shifting","repo":"ai-secure/certified-fairness","repo_kind":"official","path":"fairness_bound_general_shifting.py","file_url":"https://github.com/ai-secure/certified-fairness/blob/HEAD/fairness_bound_general_shifting.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"53e543946261c474"}},{"code_sha256_prefix":"4a2bb16f790c3a10","entry":"fairness_grammian_improve","repo":"ai-secure/certified-fairness","repo_kind":"official","path":"fairness_bound_general_shifting.py","file_url":"https://github.com/ai-secure/certified-fairness/blob/HEAD/fairness_bound_general_shifting.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":"4a2bb16f790c3a10"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}