{"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-accurate-and-interpretable-decision","title":"Learning Accurate and Interpretable Decision Rule Sets from Neural Networks","arxiv_id":"2103.02826","date":"2021-03-04","proceeding":null,"authors":["Litao Qiao","Weijia Wang","Bill Lin"],"abstract":"This paper proposes a new paradigm for learning a set of independent logical rules in disjunctive normal form as an interpretable model for classification. We consider the problem of learning an interpretable decision rule set as training a neural network in a specific, yet very simple two-layer architecture. Each neuron in the first layer directly maps to an interpretable if-then rule after training, and the output neuron in the second layer directly maps to a disjunction of the first-layer rules to form the decision rule set. Our representation of neurons in this first rules layer enables us to encode both the positive and the negative association of features in a decision rule. State-of-the-art neural net training approaches can be leveraged for learning highly accurate classification models. Moreover, we propose a sparsity-based regularization approach to balance between classification accuracy and the simplicity of the derived rules. Our experimental results show that our method can generate more accurate decision rule sets than other state-of-the-art rule-learning algorithms with better accuracy-simplicity trade-offs. Further, when compared with uninterpretable black-box machine learning approaches such as random forests and full-precision deep neural networks, our approach can easily find interpretable decision rule sets that have comparable predictive performance.","url_abs":"https://arxiv.org/abs/2103.02826v2","url_pdf":"https://arxiv.org/pdf/2103.02826v2.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-accurate-and-interpretable-decision","repo_url":"https://github.com/joeyonng/decision-rules-network","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"classification","task_name":"General Classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2103.02826","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.02826"}},"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/joeyonng/decision-rules-network","reach":null}],"summary":{"ran":6,"ran_draft_wrong":1,"unverified":1},"by_repo_kind":{"listed":{"samples":8,"ran":7,"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":"865a804ebc033906","entry":"Binarization","repo":"joeyonng/decision-rules-network","repo_kind":"listed","path":"DRNet.py","file_url":"https://github.com/joeyonng/decision-rules-network/blob/HEAD/DRNet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"865a804ebc033906"}},{"code_sha256_prefix":"4cc8dbaa80115ab4","entry":"L0Linear","repo":"joeyonng/decision-rules-network","repo_kind":"listed","path":"DRNet.py","file_url":"https://github.com/joeyonng/decision-rules-network/blob/HEAD/DRNet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4cc8dbaa80115ab4"}},{"code_sha256_prefix":"07cf5077910cf69f","entry":"LabelFunction","repo":"joeyonng/decision-rules-network","repo_kind":"listed","path":"DRNet.py","file_url":"https://github.com/joeyonng/decision-rules-network/blob/HEAD/DRNet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"07cf5077910cf69f"}},{"code_sha256_prefix":"1c56ae35e7e1be75","entry":"Linear","repo":"joeyonng/decision-rules-network","repo_kind":"listed","path":"DRNet.py","file_url":"https://github.com/joeyonng/decision-rules-network/blob/HEAD/DRNet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1c56ae35e7e1be75"}},{"code_sha256_prefix":"fd8bb7448749ff01","entry":"ReweightLinear","repo":"joeyonng/decision-rules-network","repo_kind":"listed","path":"DRNet.py","file_url":"https://github.com/joeyonng/decision-rules-network/blob/HEAD/DRNet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fd8bb7448749ff01"}},{"code_sha256_prefix":"10e0d79bac59fc35","entry":"RuleFunction","repo":"joeyonng/decision-rules-network","repo_kind":"listed","path":"DRNet.py","file_url":"https://github.com/joeyonng/decision-rules-network/blob/HEAD/DRNet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"10e0d79bac59fc35"}},{"code_sha256_prefix":"941598084010aacc","entry":"sparse_linear","repo":"joeyonng/decision-rules-network","repo_kind":"listed","path":"DRNet.py","file_url":"https://github.com/joeyonng/decision-rules-network/blob/HEAD/DRNet.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"941598084010aacc"}},{"code_sha256_prefix":"264c0f375116a2aa","entry":"DRNet","repo":"joeyonng/decision-rules-network","repo_kind":"listed","path":"DRNet.py","file_url":"https://github.com/joeyonng/decision-rules-network/blob/HEAD/DRNet.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":"264c0f375116a2aa"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}