{"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/federated-learning-on-heterogeneous-and-long","title":"Federated Learning on Heterogeneous and Long-Tailed Data via Classifier Re-Training with Federated Features","arxiv_id":"2204.13399","date":"2022-04-28","proceeding":null,"authors":["Xinyi Shang","Yang Lu","Gang Huang","Hanzi Wang"],"abstract":"Federated learning (FL) provides a privacy-preserving solution for distributed machine learning tasks. One challenging problem that severely damages the performance of FL models is the co-occurrence of data heterogeneity and long-tail distribution, which frequently appears in real FL applications. In this paper, we reveal an intriguing fact that the biased classifier is the primary factor leading to the poor performance of the global model. Motivated by the above finding, we propose a novel and privacy-preserving FL method for heterogeneous and long-tailed data via Classifier Re-training with Federated Features (CReFF). The classifier re-trained on federated features can produce comparable performance as the one re-trained on real data in a privacy-preserving manner without information leakage of local data or class distribution. Experiments on several benchmark datasets show that the proposed CReFF is an effective solution to obtain a promising FL model under heterogeneous and long-tailed data. Comparative results with the state-of-the-art FL methods also validate the superiority of CReFF. Our code is available at https://github.com/shangxinyi/CReFF-FL.","url_abs":"https://arxiv.org/abs/2204.13399v1","url_pdf":"https://arxiv.org/pdf/2204.13399v1.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":"federated-learning-on-heterogeneous-and-long","repo_url":"https://github.com/shangxinyi/creff-fl","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"federated-learning-on-heterogeneous-and-long","repo_url":"https://github.com/wnn2000/fediic","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"federated-learning","task_name":"Federated Learning"},{"task_slug":"privacy-preserving","task_name":"Privacy Preserving"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2204.13399","atlas_url":"https://app.syntology.ai/?focus=2204.13399","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2204.13399"}},"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/wnn2000/fediic","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/shangxinyi/creff-fl","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/shangxinyi/CReFF-FL","reach":{"status":"ok"}}],"summary":{"ran_draft_wrong":1,"ran_honours":1,"unverified":1},"by_repo_kind":{"official":{"samples":2,"ran":2,"repositories":1},"listed":{"samples":1,"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":3,"samples":[{"code_sha256_prefix":"10e34c46038f259b","entry":"distance_wb","repo":"shangxinyi/CReFF-FL","repo_kind":"official","path":"Dataset/Gradient_matching_loss.py","file_url":"https://github.com/shangxinyi/CReFF-FL/blob/HEAD/Dataset/Gradient_matching_loss.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":"10e34c46038f259b"}},{"code_sha256_prefix":"7d47cf05bf134778","entry":"match_loss","repo":"shangxinyi/CReFF-FL","repo_kind":"official","path":"Dataset/Gradient_matching_loss.py","file_url":"https://github.com/shangxinyi/CReFF-FL/blob/HEAD/Dataset/Gradient_matching_loss.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7d47cf05bf134778"}},{"code_sha256_prefix":"1fe727a67f4eb86e","entry":"DALA","repo":"wnn2000/fediic","repo_kind":"listed","path":"utils/losses.py","file_url":"https://github.com/wnn2000/fediic/blob/HEAD/utils/losses.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":"1fe727a67f4eb86e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}