{"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/linear-treeshap","title":"Linear TreeShap","arxiv_id":"2209.08192","date":"2022-09-16","proceeding":null,"authors":["Peng Yu","Chao Xu","Albert Bifet","Jesse Read"],"abstract":"Decision trees are well-known due to their ease of interpretability. To improve accuracy, we need to grow deep trees or ensembles of trees. These are hard to interpret, offsetting their original benefits. Shapley values have recently become a popular way to explain the predictions of tree-based machine learning models. It provides a linear weighting to features independent of the tree structure. The rise in popularity is mainly due to TreeShap, which solves a general exponential complexity problem in polynomial time. Following extensive adoption in the industry, more efficient algorithms are required. This paper presents a more efficient and straightforward algorithm: Linear TreeShap. Like TreeShap, Linear TreeShap is exact and requires the same amount of memory.","url_abs":"https://arxiv.org/abs/2209.08192v2","url_pdf":"https://arxiv.org/pdf/2209.08192v2.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":"linear-treeshap","repo_url":"https://github.com/yupbank/linear_tree_shap","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2209.08192","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2209.08192"}},"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/yupbank/linear_tree_shap","reach":null}],"summary":{"ran_draft_wrong":1,"ran_fixture":1,"ran_honours":1},"by_repo_kind":{"official":{"samples":3,"ran":3,"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":3,"samples":[{"code_sha256_prefix":"140f004eb2c96047","entry":"dummy_transform","repo":"yupbank/linear_tree_shap","repo_kind":"official","path":"tests/test_linear_tree_shap.py","file_url":"https://github.com/yupbank/linear_tree_shap/blob/HEAD/tests/test_linear_tree_shap.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"140f004eb2c96047"}},{"code_sha256_prefix":"a68436516cbb0ff4","entry":"get_N","repo":"yupbank/linear_tree_shap","repo_kind":"official","path":"linear_tree_shap/fast_linear_tree_shap.py","file_url":"https://github.com/yupbank/linear_tree_shap/blob/HEAD/linear_tree_shap/fast_linear_tree_shap.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a68436516cbb0ff4"}},{"code_sha256_prefix":"3e3f29e0ca3f0e39","entry":"get_norm_weight","repo":"yupbank/linear_tree_shap","repo_kind":"official","path":"linear_tree_shap/fast_linear_tree_shap.py","file_url":"https://github.com/yupbank/linear_tree_shap/blob/HEAD/linear_tree_shap/fast_linear_tree_shap.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3e3f29e0ca3f0e39"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}