{"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/runaway-feedback-loops-in-predictive-policing","title":"Runaway Feedback Loops in Predictive Policing","arxiv_id":"1706.09847","date":"2017-06-29","proceeding":null,"authors":["Danielle Ensign","Sorelle A. Friedler","Scott Neville","Carlos Scheidegger","Suresh Venkatasubramanian"],"abstract":"Predictive policing systems are increasingly used to determine how to\nallocate police across a city in order to best prevent crime. Discovered crime\ndata (e.g., arrest counts) are used to help update the model, and the process\nis repeated. Such systems have been empirically shown to be susceptible to\nrunaway feedback loops, where police are repeatedly sent back to the same\nneighborhoods regardless of the true crime rate.\n  In response, we develop a mathematical model of predictive policing that\nproves why this feedback loop occurs, show empirically that this model exhibits\nsuch problems, and demonstrate how to change the inputs to a predictive\npolicing system (in a black-box manner) so the runaway feedback loop does not\noccur, allowing the true crime rate to be learned. Our results are\nquantitative: we can establish a link (in our model) between the degree to\nwhich runaway feedback causes problems and the disparity in crime rates between\nareas. Moreover, we can also demonstrate the way in which \\emph{reported}\nincidents of crime (those reported by residents) and \\emph{discovered}\nincidents of crime (i.e. those directly observed by police officers dispatched\nas a result of the predictive policing algorithm) interact: in brief, while\nreported incidents can attenuate the degree of runaway feedback, they cannot\nentirely remove it without the interventions we suggest.","url_abs":"http://arxiv.org/abs/1706.09847v3","url_pdf":"http://arxiv.org/pdf/1706.09847v3.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":"runaway-feedback-loops-in-predictive-policing","repo_url":"https://github.com/algofairness/runaway-feedback-loops-src","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1706.09847","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1706.09847"}},"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/algofairness/runaway-feedback-loops-src","reach":null}],"summary":{"ran_draft_wrong":3},"by_repo_kind":{"official":{"samples":3,"ran":3,"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":"60533dd4d620846f","entry":"add_exponential_decay","repo":"algofairness/runaway-feedback-loops-src","repo_kind":"official","path":"src/polya.py","file_url":"https://github.com/algofairness/runaway-feedback-loops-src/blob/HEAD/src/polya.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"60533dd4d620846f"}},{"code_sha256_prefix":"a2070f710852ac45","entry":"add_poisson_update","repo":"algofairness/runaway-feedback-loops-src","repo_kind":"official","path":"src/polya.py","file_url":"https://github.com/algofairness/runaway-feedback-loops-src/blob/HEAD/src/polya.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a2070f710852ac45"}},{"code_sha256_prefix":"2e3e6d2641887cdd","entry":"add_truncation","repo":"algofairness/runaway-feedback-loops-src","repo_kind":"official","path":"src/polya.py","file_url":"https://github.com/algofairness/runaway-feedback-loops-src/blob/HEAD/src/polya.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2e3e6d2641887cdd"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}