{"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/fooling-partial-dependence-via-data-poisoning","title":"Fooling Partial Dependence via Data Poisoning","arxiv_id":"2105.12837","date":"2021-05-26","proceeding":null,"authors":["Hubert Baniecki","Wojciech Kretowicz","Przemyslaw Biecek"],"abstract":"Many methods have been developed to understand complex predictive models and high expectations are placed on post-hoc model explainability. It turns out that such explanations are not robust nor trustworthy, and they can be fooled. This paper presents techniques for attacking Partial Dependence (plots, profiles, PDP), which are among the most popular methods of explaining any predictive model trained on tabular data. We showcase that PD can be manipulated in an adversarial manner, which is alarming, especially in financial or medical applications where auditability became a must-have trait supporting black-box machine learning. The fooling is performed via poisoning the data to bend and shift explanations in the desired direction using genetic and gradient algorithms. We believe this to be the first work using a genetic algorithm for manipulating explanations, which is transferable as it generalizes both ways: in a model-agnostic and an explanation-agnostic manner.","url_abs":"https://arxiv.org/abs/2105.12837v3","url_pdf":"https://arxiv.org/pdf/2105.12837v3.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":"fooling-partial-dependence-via-data-poisoning","repo_url":"https://github.com/MI2DataLab/fooling-partial-dependence","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"data-poisoning","task_name":"Data Poisoning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2105.12837","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2105.12837"}},"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/MI2DataLab/fooling-partial-dependence","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":3},"by_repo_kind":{"official":{"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":"2249b1b63fbb5707","entry":"check_early_stopping","repo":"MI2DataLab/fooling-partial-dependence","repo_kind":"official","path":"code/utils.py","file_url":"https://github.com/MI2DataLab/fooling-partial-dependence/blob/HEAD/code/utils.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":"2249b1b63fbb5707"}},{"code_sha256_prefix":"2c250a23d7c082e5","entry":"loss","repo":"MI2DataLab/fooling-partial-dependence","repo_kind":"official","path":"code/loss.py","file_url":"https://github.com/MI2DataLab/fooling-partial-dependence/blob/HEAD/code/loss.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":"2c250a23d7c082e5"}},{"code_sha256_prefix":"cd73b25c77784ee9","entry":"loss_pop","repo":"MI2DataLab/fooling-partial-dependence","repo_kind":"official","path":"code/loss.py","file_url":"https://github.com/MI2DataLab/fooling-partial-dependence/blob/HEAD/code/loss.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":"cd73b25c77784ee9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}