{"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/restoring-balance-principled-under","title":"Restoring balance: principled under/oversampling of data for optimal classification","arxiv_id":"2405.09535","date":"2024-05-15","proceeding":null,"authors":["Emanuele Loffredo","Mauro Pastore","Simona Cocco","Rémi Monasson"],"abstract":"Class imbalance in real-world data poses a common bottleneck for machine learning tasks, since achieving good generalization on under-represented examples is often challenging. Mitigation strategies, such as under or oversampling the data depending on their abundances, are routinely proposed and tested empirically, but how they should adapt to the data statistics remains poorly understood. In this work, we determine exact analytical expressions of the generalization curves in the high-dimensional regime for linear classifiers (Support Vector Machines). We also provide a sharp prediction of the effects of under/oversampling strategies depending on class imbalance, first and second moments of the data, and the metrics of performance considered. We show that mixed strategies involving under and oversampling of data lead to performance improvement. Through numerical experiments, we show the relevance of our theoretical predictions on real datasets, on deeper architectures and with sampling strategies based on unsupervised probabilistic models.","url_abs":"https://arxiv.org/abs/2405.09535v2","url_pdf":"https://arxiv.org/pdf/2405.09535v2.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":"restoring-balance-principled-under","repo_url":"https://github.com/Eloffredo/RestoringDataBalance","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2405.09535","atlas_url":"https://app.syntology.ai/?focus=2405.09535","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.09535"}},"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/Eloffredo/RestoringDataBalance","reach":{"status":"ok"}}],"summary":{"ran":3},"by_repo_kind":{"official":{"samples":3,"ran":3,"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":"0daa0391b29f8b00","entry":"buildMatrices_Potts","repo":"Eloffredo/RestoringDataBalance","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/Eloffredo/RestoringDataBalance/blob/HEAD/src/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0daa0391b29f8b00"}},{"code_sha256_prefix":"fe4eff603932107b","entry":"dataFromIsing","repo":"Eloffredo/RestoringDataBalance","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/Eloffredo/RestoringDataBalance/blob/HEAD/src/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fe4eff603932107b"}},{"code_sha256_prefix":"73cdd75a292664ee","entry":"dataRnd_wPotts","repo":"Eloffredo/RestoringDataBalance","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/Eloffredo/RestoringDataBalance/blob/HEAD/src/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"73cdd75a292664ee"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}