{"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/okridge-scalable-optimal-k-sparse-ridge","title":"OKRidge: Scalable Optimal k-Sparse Ridge Regression","arxiv_id":"2304.06686","date":"2023-04-13","proceeding":"NeurIPS 2023 11","authors":["Jiachang Liu","Sam Rosen","Chudi Zhong","Cynthia Rudin"],"abstract":"We consider an important problem in scientific discovery, namely identifying sparse governing equations for nonlinear dynamical systems. This involves solving sparse ridge regression problems to provable optimality in order to determine which terms drive the underlying dynamics. We propose a fast algorithm, OKRidge, for sparse ridge regression, using a novel lower bound calculation involving, first, a saddle point formulation, and from there, either solving (i) a linear system or (ii) using an ADMM-based approach, where the proximal operators can be efficiently evaluated by solving another linear system and an isotonic regression problem. We also propose a method to warm-start our solver, which leverages a beam search. Experimentally, our methods attain provable optimality with run times that are orders of magnitude faster than those of the existing MIP formulations solved by the commercial solver Gurobi.","url_abs":"https://arxiv.org/abs/2304.06686v3","url_pdf":"https://arxiv.org/pdf/2304.06686v3.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":"okridge-scalable-optimal-k-sparse-ridge","repo_url":"https://github.com/jiachangliu/okridge","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[{"task_slug":"regression-1","task_name":"regression"},{"task_slug":"scientific-discovery","task_name":"scientific discovery"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2304.06686","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2304.06686"}},"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/jiachangliu/okridge","reach":null}],"summary":{"ran_honours":5,"ran":6,"unverified":2},"by_repo_kind":{"official":{"samples":13,"ran":11,"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":"6d403e45178c45cc","entry":"total_size","repo":"jiachangliu/okridge","repo_kind":"official","path":"src/okridge/solvers.py","file_url":"https://github.com/jiachangliu/okridge/blob/HEAD/src/okridge/solvers.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":2,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"6d403e45178c45cc"}},{"code_sha256_prefix":"1be5cb7dc882cee2","entry":"DataClass","repo":"jiachangliu/okridge","repo_kind":"official","path":"src/okridge/tree.py","file_url":"https://github.com/jiachangliu/okridge/blob/HEAD/src/okridge/tree.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"1be5cb7dc882cee2"}},{"code_sha256_prefix":"4925be329c6c8ffc","entry":"Node","repo":"jiachangliu/okridge","repo_kind":"official","path":"src/okridge/tree.py","file_url":"https://github.com/jiachangliu/okridge/blob/HEAD/src/okridge/tree.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"4925be329c6c8ffc"}},{"code_sha256_prefix":"c3c9a0804f11f6d3","entry":"calculate_size","repo":"jiachangliu/okridge","repo_kind":"official","path":"src/okridge/solvers.py","file_url":"https://github.com/jiachangliu/okridge/blob/HEAD/src/okridge/solvers.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":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"c3c9a0804f11f6d3"}},{"code_sha256_prefix":"2b703299192e52ae","entry":"convert_GB_to_bytes","repo":"jiachangliu/okridge","repo_kind":"official","path":"src/okridge/tree.py","file_url":"https://github.com/jiachangliu/okridge/blob/HEAD/src/okridge/tree.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"2b703299192e52ae"}},{"code_sha256_prefix":"f6fc85435dbf0406","entry":"convert_bytes_to_GB","repo":"jiachangliu/okridge","repo_kind":"official","path":"src/okridge/tree.py","file_url":"https://github.com/jiachangliu/okridge/blob/HEAD/src/okridge/tree.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"f6fc85435dbf0406"}},{"code_sha256_prefix":"ffe80097c40a7199","entry":"get_RAM_available_in_GB","repo":"jiachangliu/okridge","repo_kind":"official","path":"src/okridge/tree.py","file_url":"https://github.com/jiachangliu/okridge/blob/HEAD/src/okridge/tree.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"ffe80097c40a7199"}},{"code_sha256_prefix":"2360eab65500ca1c","entry":"get_RAM_available_in_bytes","repo":"jiachangliu/okridge","repo_kind":"official","path":"src/okridge/tree.py","file_url":"https://github.com/jiachangliu/okridge/blob/HEAD/src/okridge/tree.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"2360eab65500ca1c"}},{"code_sha256_prefix":"37fd8042734450f6","entry":"get_RAM_used_in_GB","repo":"jiachangliu/okridge","repo_kind":"official","path":"src/okridge/tree.py","file_url":"https://github.com/jiachangliu/okridge/blob/HEAD/src/okridge/tree.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"37fd8042734450f6"}},{"code_sha256_prefix":"40b7e97722f1bebb","entry":"linRegModel_unnormalized_big_n","repo":"jiachangliu/okridge","repo_kind":"official","path":"src/okridge/tree.py","file_url":"https://github.com/jiachangliu/okridge/blob/HEAD/src/okridge/tree.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"40b7e97722f1bebb"}},{"code_sha256_prefix":"be5619896ef9cbf7","entry":"new_z","repo":"jiachangliu/okridge","repo_kind":"official","path":"src/okridge/tree.py","file_url":"https://github.com/jiachangliu/okridge/blob/HEAD/src/okridge/tree.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"be5619896ef9cbf7"}},{"code_sha256_prefix":"480876c73d988263","entry":"BNBTree","repo":"jiachangliu/okridge","repo_kind":"official","path":"src/okridge/tree.py","file_url":"https://github.com/jiachangliu/okridge/blob/HEAD/src/okridge/tree.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"480876c73d988263"}},{"code_sha256_prefix":"1395c9fcdb4e8258","entry":"branch","repo":"jiachangliu/okridge","repo_kind":"official","path":"src/okridge/tree.py","file_url":"https://github.com/jiachangliu/okridge/blob/HEAD/src/okridge/tree.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"1395c9fcdb4e8258"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}