{"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/arxiv-2510-19040","title":"Empowering Decision Trees via Shape Function Branching","arxiv_id":"2510.19040","date":"2025-10-21","proceeding":"NeurIPS","authors":["Nakul Upadhya","Eldan Cohen"],"abstract":"Decision trees are prized for their interpretability and strong performance on tabular data. Yet, their reliance on simple axis-aligned linear splits often forces deep, complex structures to capture non-linear feature effects, undermining human comprehension of the constructed tree. To address this limitation, we propose a novel generalization of a decision tree, the Shape Generalized Tree (SGT), in which each internal node applies a learnable axis-aligned shape function to a single feature, enabling rich, non-linear partitioning in one split. As users can easily visualize each node's shape function, SGTs are inherently interpretable and provide intuitive, visual explanations of the model's decision mechanisms. To learn SGTs from data, we propose ShapeCART, an efficient induction algorithm for SGTs. We further extend the SGT framework to bivariate shape functions (S$^2$GT) and multi-way trees (SGT$_K$), and present Shape$^2$CART and ShapeCART$_K$, extensions to ShapeCART for learning S$^2$GTs and SGT$_K$s, respectively. Experiments on various datasets show that SGTs achieve superior performance with reduced model size compared to traditional axis-aligned linear trees.","url_abs":"https://arxiv.org/abs/2510.19040","url_pdf":"https://arxiv.org/pdf/2510.19040","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2510.19040","atlas_url":"https://app.syntology.ai/?focus=2510.19040","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2510.19040"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/user-anonymous-researcher/interpretable-dts","reach":{"status":"ok"}},{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/VarunBabbar/SPLIT-ICML","reach":{"status":"ok","spdx":"MIT"}},{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/optimal-uoft/Empowering-DTs-via-Shape-Functions","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":12},"by_repo_kind":{"found_in_text":{"samples":12,"ran":0,"repositories":2}},"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":"90a30e599cfe53ce","entry":"any_label_accuracy","repo":"optimal-uoft/Empowering-DTs-via-Shape-Functions","repo_kind":"found_in_text","path":"src/ShapeCARTClassifier.py","file_url":"https://github.com/optimal-uoft/Empowering-DTs-via-Shape-Functions/blob/HEAD/src/ShapeCARTClassifier.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":"90a30e599cfe53ce"}},{"code_sha256_prefix":"9cf58501dd2c9474","entry":"calc_classification_metrics","repo":"optimal-uoft/Empowering-DTs-via-Shape-Functions","repo_kind":"found_in_text","path":"src/metric_utils.py","file_url":"https://github.com/optimal-uoft/Empowering-DTs-via-Shape-Functions/blob/HEAD/src/metric_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":"9cf58501dd2c9474"}},{"code_sha256_prefix":"d1db934874c2c81b","entry":"calc_regression_metrics","repo":"optimal-uoft/Empowering-DTs-via-Shape-Functions","repo_kind":"found_in_text","path":"src/metric_utils.py","file_url":"https://github.com/optimal-uoft/Empowering-DTs-via-Shape-Functions/blob/HEAD/src/metric_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":"d1db934874c2c81b"}},{"code_sha256_prefix":"510d343f3e138a09","entry":"calculate_total_impurity","repo":"optimal-uoft/Empowering-DTs-via-Shape-Functions","repo_kind":"found_in_text","path":"src/BranchingTree.py","file_url":"https://github.com/optimal-uoft/Empowering-DTs-via-Shape-Functions/blob/HEAD/src/BranchingTree.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":"510d343f3e138a09"}},{"code_sha256_prefix":"7c0101db17bf4361","entry":"compute_partition_stats","repo":"optimal-uoft/Empowering-DTs-via-Shape-Functions","repo_kind":"found_in_text","path":"src/BranchingTreeRegressor.py","file_url":"https://github.com/optimal-uoft/Empowering-DTs-via-Shape-Functions/blob/HEAD/src/BranchingTreeRegressor.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":"7c0101db17bf4361"}},{"code_sha256_prefix":"12aeb0b59db64bc6","entry":"generate_line_orientations","repo":"optimal-uoft/Empowering-DTs-via-Shape-Functions","repo_kind":"found_in_text","path":"src/BiCART.py","file_url":"https://github.com/optimal-uoft/Empowering-DTs-via-Shape-Functions/blob/HEAD/src/BiCART.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":"12aeb0b59db64bc6"}},{"code_sha256_prefix":"4323311931a15afb","entry":"get_leaf_subtree_sides","repo":"optimal-uoft/Empowering-DTs-via-Shape-Functions","repo_kind":"found_in_text","path":"src/BranchingTree.py","file_url":"https://github.com/optimal-uoft/Empowering-DTs-via-Shape-Functions/blob/HEAD/src/BranchingTree.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":"4323311931a15afb"}},{"code_sha256_prefix":"47b248828deccd2a","entry":"multi_to_single","repo":"optimal-uoft/Empowering-DTs-via-Shape-Functions","repo_kind":"found_in_text","path":"src/ShapeCARTClassifier.py","file_url":"https://github.com/optimal-uoft/Empowering-DTs-via-Shape-Functions/blob/HEAD/src/ShapeCARTClassifier.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":"47b248828deccd2a"}},{"code_sha256_prefix":"bfcbb7d7fb893e7d","entry":"num_leaves","repo":"VarunBabbar/SPLIT-ICML","repo_kind":"found_in_text","path":"split/src/split/utils.py","file_url":"https://github.com/VarunBabbar/SPLIT-ICML/blob/HEAD/split/src/split/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":"bfcbb7d7fb893e7d"}},{"code_sha256_prefix":"423116625a3e6ca4","entry":"process_dataframe","repo":"optimal-uoft/Empowering-DTs-via-Shape-Functions","repo_kind":"found_in_text","path":"src/data_utils.py","file_url":"https://github.com/optimal-uoft/Empowering-DTs-via-Shape-Functions/blob/HEAD/src/data_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":"423116625a3e6ca4"}},{"code_sha256_prefix":"74349c4086e72212","entry":"run_descent","repo":"optimal-uoft/Empowering-DTs-via-Shape-Functions","repo_kind":"found_in_text","path":"src/BranchingTree.py","file_url":"https://github.com/optimal-uoft/Empowering-DTs-via-Shape-Functions/blob/HEAD/src/BranchingTree.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":"74349c4086e72212"}},{"code_sha256_prefix":"693f0c6e671f0da3","entry":"upsample","repo":"optimal-uoft/Empowering-DTs-via-Shape-Functions","repo_kind":"found_in_text","path":"src/ShapeCARTRegressor.py","file_url":"https://github.com/optimal-uoft/Empowering-DTs-via-Shape-Functions/blob/HEAD/src/ShapeCARTRegressor.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":"693f0c6e671f0da3"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_api"},"syntology_extracted_results":null}