{"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/contrastive-explanations-with-local-foil","title":"Contrastive Explanations with Local Foil Trees","arxiv_id":"1806.07470","date":"2018-06-19","proceeding":null,"authors":["Jasper van der Waa","Marcel Robeer","Jurriaan van Diggelen","Matthieu Brinkhuis","Mark Neerincx"],"abstract":"Recent advances in interpretable Machine Learning (iML) and eXplainable AI\n(XAI) construct explanations based on the importance of features in\nclassification tasks. However, in a high-dimensional feature space this\napproach may become unfeasible without restraining the set of important\nfeatures. We propose to utilize the human tendency to ask questions like \"Why\nthis output (the fact) instead of that output (the foil)?\" to reduce the number\nof features to those that play a main role in the asked contrast. Our proposed\nmethod utilizes locally trained one-versus-all decision trees to identify the\ndisjoint set of rules that causes the tree to classify data points as the foil\nand not as the fact. In this study we illustrate this approach on three\nbenchmark classification tasks.","url_abs":"http://arxiv.org/abs/1806.07470v1","url_pdf":"http://arxiv.org/pdf/1806.07470v1.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":"contrastive-explanations-with-local-foil","repo_url":"https://github.com/MarcelRobeer/ContrastiveExplanation","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"paper_slug":"contrastive-explanations-with-local-foil","repo_url":"https://github.com/YevgenyW/Responsible-DS","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}}],"tasks":[{"task_slug":"xai","task_name":"Explainable Artificial Intelligence (XAI)"},{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"interpretable-machine-learning","task_name":"Interpretable Machine Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=1806.07470","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1806.07470"}},"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/YevgenyW/Responsible-DS","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MarcelRobeer/ContrastiveExplanation","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"summary":{"unverified":3},"by_repo_kind":{"listed":{"samples":3,"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":"5fc1f2be9d33baf3","entry":"cache","repo":"MarcelRobeer/ContrastiveExplanation","repo_kind":"listed","path":"contrastive_explanation/utils.py","file_url":"https://github.com/MarcelRobeer/ContrastiveExplanation/blob/HEAD/contrastive_explanation/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5fc1f2be9d33baf3"}},{"code_sha256_prefix":"6b0adc80fa0255f6","entry":"checkargs","repo":"MarcelRobeer/ContrastiveExplanation","repo_kind":"listed","path":"contrastive_explanation/utils.py","file_url":"https://github.com/MarcelRobeer/ContrastiveExplanation/blob/HEAD/contrastive_explanation/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"6b0adc80fa0255f6"}},{"code_sha256_prefix":"5a872a566dbb586d","entry":"softmax","repo":"MarcelRobeer/ContrastiveExplanation","repo_kind":"listed","path":"contrastive_explanation/utils.py","file_url":"https://github.com/MarcelRobeer/ContrastiveExplanation/blob/HEAD/contrastive_explanation/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5a872a566dbb586d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}