{"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-dags-from-data-with-few-root-causes","title":"Learning DAGs from Data with Few Root Causes","arxiv_id":"2305.15936","date":"2023-05-25","proceeding":"NeurIPS 2023 11","authors":["Panagiotis Misiakos","Chris Wendler","Markus Püschel"],"abstract":"We present a novel perspective and algorithm for learning directed acyclic graphs (DAGs) from data generated by a linear structural equation model (SEM). First, we show that a linear SEM can be viewed as a linear transform that, in prior work, computes the data from a dense input vector of random valued root causes (as we will call them) associated with the nodes. Instead, we consider the case of (approximately) few root causes and also introduce noise in the measurement of the data. Intuitively, this means that the DAG data is produced by few data-generating events whose effect percolates through the DAG. We prove identifiability in this new setting and show that the true DAG is the global minimizer of the $L^0$-norm of the vector of root causes. For data with few root causes, with and without noise, we show superior performance compared to prior DAG learning methods.","url_abs":"https://arxiv.org/abs/2305.15936v2","url_pdf":"https://arxiv.org/pdf/2305.15936v2.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-dags-from-data-with-few-root-causes","repo_url":"https://github.com/pmisiakos/SparseRC","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2305.15936","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.15936"}},"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":"deterministic:regex_extraction","url":"https://github.com/xunzheng/notears","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/FenTechSolutions/CausalDiscoveryToolbox","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/Scriddie/Varsortability","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/kevinsbello/dagma","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/ignavierng/golem","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/fishmoon1234/DAG-NoCurl","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/cdt15/lingam","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/pmisiakos/SparseRC","reach":null}],"summary":{"unverified":2},"by_repo_kind":{"official":{"samples":2,"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":"a5202f8e3980661e","entry":"sparserc_solver","repo":"pmisiakos/SparseRC","repo_kind":"official","path":"sparserc/sparserc.py","file_url":"https://github.com/pmisiakos/SparseRC/blob/HEAD/sparserc/sparserc.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":"a5202f8e3980661e"}},{"code_sha256_prefix":"56c13d43a0191c49","entry":"sparserc_solver_weight_finder","repo":"pmisiakos/SparseRC","repo_kind":"official","path":"sparserc/sparserc.py","file_url":"https://github.com/pmisiakos/SparseRC/blob/HEAD/sparserc/sparserc.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":"56c13d43a0191c49"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}