{"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/apricot-submodular-selection-for-data","title":"apricot: Submodular selection for data summarization in Python","arxiv_id":"1906.03543","date":"2019-06-08","proceeding":null,"authors":["Jacob Schreiber","Jeffrey Bilmes","William Stafford Noble"],"abstract":"We present apricot, an open source Python package for selecting representative subsets from large data sets using submodular optimization. The package implements an efficient greedy selection algorithm that offers strong theoretical guarantees on the quality of the selected set. Two submodular set functions are implemented in apricot: facility location, which is broadly applicable but requires memory quadratic in the number of examples in the data set, and a feature-based function that is less broadly applicable but can scale to millions of examples. Apricot is extremely efficient, using both algorithmic speedups such as the lazy greedy algorithm and code optimizers such as numba. We demonstrate the use of subset selection by training machine learning models to comparable accuracy using either the full data set or a representative subset thereof. This paper presents an explanation of submodular selection, an overview of the features in apricot, and an application to several data sets. The code and tutorial Jupyter notebooks are available at https://github.com/jmschrei/apricot","url_abs":"https://arxiv.org/abs/1906.03543v1","url_pdf":"https://arxiv.org/pdf/1906.03543v1.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":"apricot-submodular-selection-for-data","repo_url":"https://github.com/jmschrei/apricot","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"data-summarization","task_name":"Data Summarization"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=1906.03543","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1906.03543"}},"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/jmschrei/apricot","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":11},"by_repo_kind":{"official":{"samples":11,"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":"e8c3f5494d76b892","entry":"calculate_gains","repo":"jmschrei/apricot","repo_kind":"official","path":"apricot/functions/facilityLocation.py","file_url":"https://github.com/jmschrei/apricot/blob/HEAD/apricot/functions/facilityLocation.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":"e8c3f5494d76b892"}},{"code_sha256_prefix":"183d6ae68255ac3d","entry":"calculate_gains","repo":"jmschrei/apricot","repo_kind":"official","path":"apricot/functions/featureBased.py","file_url":"https://github.com/jmschrei/apricot/blob/HEAD/apricot/functions/featureBased.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":"183d6ae68255ac3d"}},{"code_sha256_prefix":"28c6af75cdbdf321","entry":"calculate_gains","repo":"jmschrei/apricot","repo_kind":"official","path":"apricot/functions/maxCoverage.py","file_url":"https://github.com/jmschrei/apricot/blob/HEAD/apricot/functions/maxCoverage.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":"28c6af75cdbdf321"}},{"code_sha256_prefix":"462292bd2fd54252","entry":"calculate_gains_sieve","repo":"jmschrei/apricot","repo_kind":"official","path":"apricot/functions/facilityLocation.py","file_url":"https://github.com/jmschrei/apricot/blob/HEAD/apricot/functions/facilityLocation.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":"462292bd2fd54252"}},{"code_sha256_prefix":"e5e7fb4d629f8658","entry":"calculate_gains_sieve","repo":"jmschrei/apricot","repo_kind":"official","path":"apricot/functions/graphCut.py","file_url":"https://github.com/jmschrei/apricot/blob/HEAD/apricot/functions/graphCut.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":"e5e7fb4d629f8658"}},{"code_sha256_prefix":"e9f49efe5cdb81e9","entry":"calculate_gains_sieve","repo":"jmschrei/apricot","repo_kind":"official","path":"apricot/functions/maxCoverage.py","file_url":"https://github.com/jmschrei/apricot/blob/HEAD/apricot/functions/maxCoverage.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":"e9f49efe5cdb81e9"}},{"code_sha256_prefix":"33148b74897a49f9","entry":"calculate_gains_sparse","repo":"jmschrei/apricot","repo_kind":"official","path":"apricot/functions/facilityLocation.py","file_url":"https://github.com/jmschrei/apricot/blob/HEAD/apricot/functions/facilityLocation.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":"33148b74897a49f9"}},{"code_sha256_prefix":"974f410be770e2d1","entry":"calculate_gains_sparse","repo":"jmschrei/apricot","repo_kind":"official","path":"apricot/functions/featureBased.py","file_url":"https://github.com/jmschrei/apricot/blob/HEAD/apricot/functions/featureBased.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":"974f410be770e2d1"}},{"code_sha256_prefix":"885f1dcdbe1211c7","entry":"calculate_gains_sparse","repo":"jmschrei/apricot","repo_kind":"official","path":"apricot/functions/maxCoverage.py","file_url":"https://github.com/jmschrei/apricot/blob/HEAD/apricot/functions/maxCoverage.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":"885f1dcdbe1211c7"}},{"code_sha256_prefix":"9970bf725452e2b7","entry":"check_random_state","repo":"jmschrei/apricot","repo_kind":"official","path":"apricot/utils.py","file_url":"https://github.com/jmschrei/apricot/blob/HEAD/apricot/utils.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":"9970bf725452e2b7"}},{"code_sha256_prefix":"7c6e5731ed160e05","entry":"sigmoid","repo":"jmschrei/apricot","repo_kind":"official","path":"apricot/functions/featureBased.py","file_url":"https://github.com/jmschrei/apricot/blob/HEAD/apricot/functions/featureBased.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":"7c6e5731ed160e05"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}