{"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/a-unified-approach-to-interpreting-model","title":"A Unified Approach to Interpreting Model Predictions","arxiv_id":"1705.07874","date":"2017-05-22","proceeding":"NeurIPS 2017 12","authors":["Scott Lundberg","Su-In Lee"],"abstract":"Understanding why a model makes a certain prediction can be as crucial as the\nprediction's accuracy in many applications. However, the highest accuracy for\nlarge modern datasets is often achieved by complex models that even experts\nstruggle to interpret, such as ensemble or deep learning models, creating a\ntension between accuracy and interpretability. In response, various methods\nhave recently been proposed to help users interpret the predictions of complex\nmodels, but it is often unclear how these methods are related and when one\nmethod is preferable over another. To address this problem, we present a\nunified framework for interpreting predictions, SHAP (SHapley Additive\nexPlanations). SHAP assigns each feature an importance value for a particular\nprediction. Its novel components include: (1) the identification of a new class\nof additive feature importance measures, and (2) theoretical results showing\nthere is a unique solution in this class with a set of desirable properties.\nThe new class unifies six existing methods, notable because several recent\nmethods in the class lack the proposed desirable properties. Based on insights\nfrom this unification, we present new methods that show improved computational\nperformance and/or better consistency with human intuition than previous\napproaches.","url_abs":"http://arxiv.org/abs/1705.07874v2","url_pdf":"http://arxiv.org/pdf/1705.07874v2.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":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/slundberg/shap","is_official":0,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/GISH123/Cathay-Holdings-CIP-Projects-for-Interpretable-Machine-Learning","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/LaurentLava/SHAP","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/MachineLearningJournalClub/LearningNLP","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/OpenXAIProject/SHAP-Tutorial","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/TooTouch/WhiteBox-Part2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"unanswered"}},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/bgreenwell/fastshap","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/iancovert/shapley-regression","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/linkedin/fasttreeshap","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/liuyanguu/SHAPforxgboost","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/matteo-rizzo/explainable-fruit-ripeness-classification","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"unanswered"}},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/ojimenezn/ml-interpretability","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/poloclub/webshap","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/suinleelab/vit-shapley","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/yaroslav-moiseev/evidence-based-possibly-best-practices-in-classical-ML","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/yramon/ShapCounterfactual","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"a-unified-approach-to-interpreting-model","repo_url":"https://github.com/pytorch/captum","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"tasks":[{"task_slug":"feature-importance","task_name":"Feature Importance"},{"task_slug":"image-attribution","task_name":"Image Attribution"},{"task_slug":"interpretability-techniques-for-deep-learning","task_name":"Interpretability Techniques for Deep Learning"},{"task_slug":"interpretable-machine-learning","task_name":"Interpretable Machine Learning"},{"task_slug":"model","task_name":"model"}],"methods":[{"method_slug":"shap","method_name":"SHAP"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-attribution-on-cub-200-2011-1","task":"Image Attribution","dataset":"CUB-200-2011","model":"Kernel SHAP","rank_in_archive_order":6,"of":8,"metrics":{"Deletion AUC score (ResNet-101)":"0.1016","Insertion AUC score (ResNet-101)":"0.6763"},"uses_additional_data":false},{"leaderboard":"/sota/image-attribution-on-celeba","task":"Image Attribution","dataset":"CelebA","model":"Kernel SHAP","rank_in_archive_order":4,"of":8,"metrics":{"Deletion AUC score (ArcFace ResNet-101)":"0.1409","Insertion AUC score (ArcFace ResNet-101)":"0.5246"},"uses_additional_data":false},{"leaderboard":"/sota/image-attribution-on-vggface2","task":"Image Attribution","dataset":"VGGFace2","model":"Kernel SHAP","rank_in_archive_order":5,"of":8,"metrics":{"Deletion AUC score (ArcFace ResNet-101)":"0.2034","Insertion AUC score (ArcFace ResNet-101)":"0.6132"},"uses_additional_data":false},{"leaderboard":"/sota/interpretability-techniques-for-deep-learning-1","task":"Interpretability Techniques for Deep Learning","dataset":"CelebA","model":"Kernel SHAP","rank_in_archive_order":3,"of":7,"metrics":{"Insertion AUC score":"0.5246"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1705.07874","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1705.07874"}},"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/pytorch/captum","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/iancovert/shapley-regression","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bgreenwell/fastshap","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/LaurentLava/SHAP","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/poloclub/webshap","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ojimenezn/ml-interpretability","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/linkedin/fasttreeshap","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/slundberg/shap","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yaroslav-moiseev/evidence-based-possibly-best-practices-in-classical-ML","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/OpenXAIProject/SHAP-Tutorial","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/TooTouch/WhiteBox-Part2","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/GISH123/Cathay-Holdings-CIP-Projects-for-Interpretable-Machine-Learning","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/liuyanguu/SHAPforxgboost","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/suinleelab/vit-shapley","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/matteo-rizzo/explainable-fruit-ripeness-classification","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yramon/ShapCounterfactual","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MachineLearningJournalClub/LearningNLP","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran":1,"ran_violates":1,"ran_honours":1,"unverified":5},"by_repo_kind":{"listed":{"samples":6,"ran":1,"repositories":3}},"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":6,"samples":[{"code_sha256_prefix":"8a5c823af20228ab","entry":"ShapNN","repo":"GISH123/Cathay-Holdings-CIP-Projects-for-Interpretable-Machine-Learning","repo_kind":"listed","path":"Interpretable Machine Learning/Data Shapley/Data Shapley cores(forked from github Data Shapley)/DShap.py","file_url":"https://github.com/GISH123/Cathay-Holdings-CIP-Projects-for-Interpretable-Machine-Learning/blob/HEAD/Interpretable%20Machine%20Learning/Data%20Shapley/Data%20Shapley%20cores%28forked%20from%20github%20Data%20Shapley%29/DShap.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8a5c823af20228ab"}},{"code_sha256_prefix":"3514bf75f7ea90b7","entry":"calculate_result","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"3514bf75f7ea90b7"}},{"code_sha256_prefix":"ddb5cac385e0f2fb","entry":"default_min_variance_samples","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"ddb5cac385e0f2fb"}},{"code_sha256_prefix":"4ad3529c6a0d35d4","entry":"DShap","repo":"GISH123/Cathay-Holdings-CIP-Projects-for-Interpretable-Machine-Learning","repo_kind":"listed","path":"Interpretable Machine Learning/Data Shapley/Data Shapley cores(forked from github Data Shapley)/DShap.py","file_url":"https://github.com/GISH123/Cathay-Holdings-CIP-Projects-for-Interpretable-Machine-Learning/blob/HEAD/Interpretable%20Machine%20Learning/Data%20Shapley/Data%20Shapley%20cores%28forked%20from%20github%20Data%20Shapley%29/DShap.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4ad3529c6a0d35d4"}},{"code_sha256_prefix":"d229caa00dd35ea5","entry":"ExplainerViT","repo":"suinleelab/vit-shapley","repo_kind":"listed","path":"src/vit_shapley/models/explainer.py","file_url":"https://github.com/suinleelab/vit-shapley/blob/HEAD/src/vit_shapley/models/explainer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d229caa00dd35ea5"}},{"code_sha256_prefix":"1bae926aa4169f77","entry":"ShapleyRegression","repo":"iancovert/shapley-regression","repo_kind":"listed","path":"shapreg/shapley.py","file_url":"https://github.com/iancovert/shapley-regression/blob/HEAD/shapreg/shapley.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":"1bae926aa4169f77"}},{"code_sha256_prefix":"324da4ba58dcc892","entry":"_reset_weights","repo":"suinleelab/vit-shapley","repo_kind":"listed","path":"src/vit_shapley/models/explainer.py","file_url":"https://github.com/suinleelab/vit-shapley/blob/HEAD/src/vit_shapley/models/explainer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"324da4ba58dcc892"}},{"code_sha256_prefix":"a0ec30609289d2f1","entry":"default_variance_batches","repo":"iancovert/shapley-regression","repo_kind":"listed","path":"shapreg/shapley.py","file_url":"https://github.com/iancovert/shapley-regression/blob/HEAD/shapreg/shapley.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":"a0ec30609289d2f1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}