{"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/change-is-hard-a-closer-look-at-subpopulation","title":"Change is Hard: A Closer Look at Subpopulation Shift","arxiv_id":"2302.12254","date":"2023-02-23","proceeding":null,"authors":["Yuzhe Yang","Haoran Zhang","Dina Katabi","Marzyeh Ghassemi"],"abstract":"Machine learning models often perform poorly on subgroups that are underrepresented in the training data. Yet, little is understood on the variation in mechanisms that cause subpopulation shifts, and how algorithms generalize across such diverse shifts at scale. In this work, we provide a fine-grained analysis of subpopulation shift. We first propose a unified framework that dissects and explains common shifts in subgroups. We then establish a comprehensive benchmark of 20 state-of-the-art algorithms evaluated on 12 real-world datasets in vision, language, and healthcare domains. With results obtained from training over 10,000 models, we reveal intriguing observations for future progress in this space. First, existing algorithms only improve subgroup robustness over certain types of shifts but not others. Moreover, while current algorithms rely on group-annotated validation data for model selection, we find that a simple selection criterion based on worst-class accuracy is surprisingly effective even without any group information. Finally, unlike existing works that solely aim to improve worst-group accuracy (WGA), we demonstrate the fundamental tradeoff between WGA and other important metrics, highlighting the need to carefully choose testing metrics. Code and data are available at: https://github.com/YyzHarry/SubpopBench.","url_abs":"https://arxiv.org/abs/2302.12254v3","url_pdf":"https://arxiv.org/pdf/2302.12254v3.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":"change-is-hard-a-closer-look-at-subpopulation","repo_url":"https://github.com/yyzharry/subpopbench","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"change-is-hard-a-closer-look-at-subpopulation","repo_url":"https://github.com/skyve2012/DBA","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"model-selection","task_name":"Model Selection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2302.12254","atlas_url":"https://app.syntology.ai/?focus=2302.12254","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2302.12254"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/skyve2012/DBA","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yyzharry/subpopbench","reach":null}],"summary":{"ran_fixture":1,"ran_violates":1,"ran_honours":1,"unverified":4},"by_repo_kind":{"official":{"samples":4,"ran":2,"repositories":1},"listed":{"samples":2,"ran":1,"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":1,"samples":[{"code_sha256_prefix":"e67d7e380e66761c","entry":"binary_metrics","repo":"skyve2012/DBA","repo_kind":"listed","path":"subpopbench/utils/eval_helper.py","file_url":"https://github.com/skyve2012/DBA/blob/HEAD/subpopbench/utils/eval_helper.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e67d7e380e66761c"}},{"code_sha256_prefix":"9d4328ab806dde75","entry":"block_until_running","repo":"yyzharry/subpopbench","repo_kind":"official","path":"subpopbench/command_launchers.py","file_url":"https://github.com/yyzharry/subpopbench/blob/HEAD/subpopbench/command_launchers.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9d4328ab806dde75"}},{"code_sha256_prefix":"f2059a864ab0dc16","entry":"get_slurm_jobs","repo":"yyzharry/subpopbench","repo_kind":"official","path":"subpopbench/command_launchers.py","file_url":"https://github.com/yyzharry/subpopbench/blob/HEAD/subpopbench/command_launchers.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f2059a864ab0dc16"}},{"code_sha256_prefix":"b0bc80b1655a6802","entry":"get_algorithm_class","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"b0bc80b1655a6802"}},{"code_sha256_prefix":"5b0092cb7767b24c","entry":"get_dataset_class","repo":"yyzharry/subpopbench","repo_kind":"official","path":"subpopbench/dataset/datasets.py","file_url":"https://github.com/yyzharry/subpopbench/blob/HEAD/subpopbench/dataset/datasets.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":"5b0092cb7767b24c"}},{"code_sha256_prefix":"38ace74bf6716b77","entry":"num_environments","repo":"yyzharry/subpopbench","repo_kind":"official","path":"subpopbench/dataset/datasets.py","file_url":"https://github.com/yyzharry/subpopbench/blob/HEAD/subpopbench/dataset/datasets.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":"38ace74bf6716b77"}},{"code_sha256_prefix":"aa7d2110b04bb70f","entry":"predict_on_set","repo":"skyve2012/DBA","repo_kind":"listed","path":"subpopbench/utils/eval_helper.py","file_url":"https://github.com/skyve2012/DBA/blob/HEAD/subpopbench/utils/eval_helper.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":"aa7d2110b04bb70f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}