{"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/learning-with-confident-examples-rank-pruning","title":"Learning with Confident Examples: Rank Pruning for Robust Classification with Noisy Labels","arxiv_id":"1705.01936","date":"2017-05-04","proceeding":null,"authors":["Curtis G. Northcutt","Tailin Wu","Isaac L. Chuang"],"abstract":"Noisy PN learning is the problem of binary classification when training\nexamples may be mislabeled (flipped) uniformly with noise rate rho1 for\npositive examples and rho0 for negative examples. We propose Rank Pruning (RP)\nto solve noisy PN learning and the open problem of estimating the noise rates,\ni.e. the fraction of wrong positive and negative labels. Unlike prior\nsolutions, RP is time-efficient and general, requiring O(T) for any\nunrestricted choice of probabilistic classifier with T fitting time. We prove\nRP has consistent noise estimation and equivalent expected risk as learning\nwith uncorrupted labels in ideal conditions, and derive closed-form solutions\nwhen conditions are non-ideal. RP achieves state-of-the-art noise estimation\nand F1, error, and AUC-PR for both MNIST and CIFAR datasets, regardless of the\namount of noise and performs similarly impressively when a large portion of\ntraining examples are noise drawn from a third distribution. To highlight, RP\nwith a CNN classifier can predict if an MNIST digit is a \"one\"or \"not\" with\nonly 0.25% error, and 0.46 error across all digits, even when 50% of positive\nexamples are mislabeled and 50% of observed positive labels are mislabeled\nnegative examples.","url_abs":"http://arxiv.org/abs/1705.01936v3","url_pdf":"http://arxiv.org/pdf/1705.01936v3.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":"learning-with-confident-examples-rank-pruning","repo_url":"https://github.com/cgnorthcutt/rankpruning","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":null},{"paper_slug":"learning-with-confident-examples-rank-pruning","repo_url":"https://github.com/cleanlab/cleanlab","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"learning-with-confident-examples-rank-pruning","repo_url":"https://github.com/MindSpore-scientific-2/code-12/tree/main/Learning-with-Noisy-Labels","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null}],"tasks":[{"task_slug":"binary-classification","task_name":"Binary Classification"},{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"noise-estimation","task_name":"Noise Estimation"},{"task_slug":"robust-classification","task_name":"Robust classification"}],"methods":[{"method_slug":"pruning","method_name":"Pruning"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1705.01936","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1705.01936"}},"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/cleanlab/cleanlab","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MindSpore-scientific-2/code-12/tree/main/Learning-with-Noisy-Labels","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cgnorthcutt/rankpruning","reach":null}],"summary":{"ran_fixture":2,"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":0,"samples":[{"code_sha256_prefix":"9fe32e7fe6cd465e","entry":"compute_conf_counts_noise_rates_from_probabilities","repo":"cgnorthcutt/rankpruning","repo_kind":"official","path":"rankpruning/rankpruning.py","file_url":"https://github.com/cgnorthcutt/rankpruning/blob/HEAD/rankpruning/rankpruning.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9fe32e7fe6cd465e"}},{"code_sha256_prefix":"791ef057d812c384","entry":"compute_noise_rates_and_cv_pred_proba","repo":"cgnorthcutt/rankpruning","repo_kind":"official","path":"rankpruning/rankpruning.py","file_url":"https://github.com/cgnorthcutt/rankpruning/blob/HEAD/rankpruning/rankpruning.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":"791ef057d812c384"}},{"code_sha256_prefix":"0c29030cb365bf18","entry":"compute_cv_predicted_probabilities","repo":"cgnorthcutt/rankpruning","repo_kind":"official","path":"rankpruning/rankpruning.py","file_url":"https://github.com/cgnorthcutt/rankpruning/blob/HEAD/rankpruning/rankpruning.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":"0c29030cb365bf18"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}