{"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/explanation-uncertainty-with-decision","title":"Boundary-Aware Uncertainty for Feature Attribution Explainers","arxiv_id":"2210.02419","date":"2022-10-05","proceeding":null,"authors":["Davin Hill","Aria Masoomi","Max Torop","Sandesh Ghimire","Jennifer Dy"],"abstract":"Post-hoc explanation methods have become a critical tool for understanding black-box classifiers in high-stakes applications. However, high-performing classifiers are often highly nonlinear and can exhibit complex behavior around the decision boundary, leading to brittle or misleading local explanations. Therefore there is an impending need to quantify the uncertainty of such explanation methods in order to understand when explanations are trustworthy. In this work we propose the Gaussian Process Explanation UnCertainty (GPEC) framework, which generates a unified uncertainty estimate combining decision boundary-aware uncertainty with explanation function approximation uncertainty. We introduce a novel geodesic-based kernel, which captures the complexity of the target black-box decision boundary. We show theoretically that the proposed kernel similarity increases with decision boundary complexity. The proposed framework is highly flexible; it can be used with any black-box classifier and feature attribution method. Empirical results on multiple tabular and image datasets show that the GPEC uncertainty estimate improves understanding of explanations as compared to existing methods.","url_abs":"https://arxiv.org/abs/2210.02419v5","url_pdf":"https://arxiv.org/pdf/2210.02419v5.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":"explanation-uncertainty-with-decision","repo_url":"https://github.com/davinhill/gpec","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[{"method_slug":"gaussian-process","method_name":"Gaussian Process"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2210.02419","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2210.02419"}},"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/davinhill/gpec","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_violates":1,"ran_honours":1,"unverified":13},"by_repo_kind":{"official":{"samples":15,"ran":2,"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":"b8e95809ca2c17c9","entry":"sigmoid","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/utils/utils_np.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/utils/utils_np.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":2,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b8e95809ca2c17c9"}},{"code_sha256_prefix":"5af8fa537914ff3d","entry":"relu","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/utils/utils_np.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/utils/utils_np.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5af8fa537914ff3d"}},{"code_sha256_prefix":"7d2c11ac4acb0c02","entry":"create_grid","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/decision_boundary.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/decision_boundary.py","link_basis":"harvester_set","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":"7d2c11ac4acb0c02"}},{"code_sha256_prefix":"37adc4b35598cf2f","entry":"dict_to_argparse","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/utils/utils_io.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/utils/utils_io.py","link_basis":"harvester_set","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":"37adc4b35598cf2f"}},{"code_sha256_prefix":"57e81628e3d66d84","entry":"geomatrix","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/distances.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/distances.py","link_basis":"harvester_set","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":"57e81628e3d66d84"}},{"code_sha256_prefix":"e2bcd8bf0a49e1e4","entry":"get_filedir","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/utils/utils_io.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/utils/utils_io.py","link_basis":"harvester_set","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":"e2bcd8bf0a49e1e4"}},{"code_sha256_prefix":"86bab81e90151905","entry":"get_pred","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/GP.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/GP.py","link_basis":"harvester_set","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":"86bab81e90151905"}},{"code_sha256_prefix":"6e488499d985500a","entry":"l2_samples_point","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/distances.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/distances.py","link_basis":"harvester_set","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":"6e488499d985500a"}},{"code_sha256_prefix":"5a9baec1e8573d73","entry":"label_trainset_with_model","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/adv_boundary.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/adv_boundary.py","link_basis":"harvester_set","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":"5a9baec1e8573d73"}},{"code_sha256_prefix":"e15c3e8f2a48ad14","entry":"label_trainset_with_model","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/adv_boundary_batched.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/adv_boundary_batched.py","link_basis":"harvester_set","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":"e15c3e8f2a48ad14"}},{"code_sha256_prefix":"9cf096acb84313ce","entry":"load_dict","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/utils/utils_io.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/utils/utils_io.py","link_basis":"harvester_set","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":"9cf096acb84313ce"}},{"code_sha256_prefix":"1e6e2c128285cb20","entry":"plt_gridsearch_orig","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/decision_boundary.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/decision_boundary.py","link_basis":"harvester_set","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":"1e6e2c128285cb20"}},{"code_sha256_prefix":"ba610ee24487a522","entry":"softplus","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/utils/utils_np.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/utils/utils_np.py","link_basis":"harvester_set","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":"ba610ee24487a522"}},{"code_sha256_prefix":"2f9fa842b94879b4","entry":"torch_dotlastdim","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/distances.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/distances.py","link_basis":"harvester_set","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":"2f9fa842b94879b4"}},{"code_sha256_prefix":"474beb2b0c89b4e8","entry":"toy_cosine_manifold","repo":"davinhill/gpec","repo_kind":"official","path":"GPEC/decision_boundary.py","file_url":"https://github.com/davinhill/gpec/blob/HEAD/GPEC/decision_boundary.py","link_basis":"harvester_set","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":"474beb2b0c89b4e8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}