{"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/undersampling-is-a-minimax-optimal-robustness","title":"Undersampling is a Minimax Optimal Robustness Intervention in Nonparametric Classification","arxiv_id":"2205.13094","date":"2022-05-26","proceeding":null,"authors":["Niladri S. Chatterji","Saminul Haque","Tatsunori Hashimoto"],"abstract":"While a broad range of techniques have been proposed to tackle distribution shift, the simple baseline of training on an $\\textit{undersampled}$ balanced dataset often achieves close to state-of-the-art-accuracy across several popular benchmarks. This is rather surprising, since undersampling algorithms discard excess majority group data. To understand this phenomenon, we ask if learning is fundamentally constrained by a lack of minority group samples. We prove that this is indeed the case in the setting of nonparametric binary classification. Our results show that in the worst case, an algorithm cannot outperform undersampling unless there is a high degree of overlap between the train and test distributions (which is unlikely to be the case in real-world datasets), or if the algorithm leverages additional structure about the distribution shift. In particular, in the case of label shift we show that there is always an undersampling algorithm that is minimax optimal. In the case of group-covariate shift we show that there is an undersampling algorithm that is minimax optimal when the overlap between the group distributions is small. We also perform an experimental case study on a label shift dataset and find that in line with our theory, the test accuracy of robust neural network classifiers is constrained by the number of minority samples.","url_abs":"https://arxiv.org/abs/2205.13094v4","url_pdf":"https://arxiv.org/pdf/2205.13094v4.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":"undersampling-is-a-minimax-optimal-robustness","repo_url":"https://github.com/niladri-chatterji/undersampling-minimax","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"binary-classification","task_name":"Binary Classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2205.13094","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2205.13094"}},"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/niladri-chatterji/undersampling-minimax","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":5},"by_repo_kind":{"official":{"samples":5,"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":"c946a1ff1f518dd9","entry":"get_transforms_list","repo":"niladri-chatterji/undersampling-minimax","repo_kind":"official","path":"src/pl_datamodules/celeba_datamodule.py","file_url":"https://github.com/niladri-chatterji/undersampling-minimax/blob/HEAD/src/pl_datamodules/celeba_datamodule.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":"c946a1ff1f518dd9"}},{"code_sha256_prefix":"e800928d4f822a38","entry":"size_to_int","repo":"niladri-chatterji/undersampling-minimax","repo_kind":"official","path":"src/architectures/simple_models.py","file_url":"https://github.com/niladri-chatterji/undersampling-minimax/blob/HEAD/src/architectures/simple_models.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":"e800928d4f822a38"}},{"code_sha256_prefix":"47d36c87f2335145","entry":"split_dataset","repo":"niladri-chatterji/undersampling-minimax","repo_kind":"official","path":"src/datasets/utils.py","file_url":"https://github.com/niladri-chatterji/undersampling-minimax/blob/HEAD/src/datasets/utils.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":"47d36c87f2335145"}},{"code_sha256_prefix":"e6e8883a68fd5457","entry":"subsample_groups","repo":"niladri-chatterji/undersampling-minimax","repo_kind":"official","path":"src/pl_datamodules/celeba_datamodule.py","file_url":"https://github.com/niladri-chatterji/undersampling-minimax/blob/HEAD/src/pl_datamodules/celeba_datamodule.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":"e6e8883a68fd5457"}},{"code_sha256_prefix":"de524736ca317085","entry":"undersampling_schedule","repo":"niladri-chatterji/undersampling-minimax","repo_kind":"official","path":"src/datasets/utils.py","file_url":"https://github.com/niladri-chatterji/undersampling-minimax/blob/HEAD/src/datasets/utils.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":"de524736ca317085"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}