{"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/stochastic-optimization-for-performative","title":"Stochastic Optimization for Performative Prediction","arxiv_id":"2006.06887","date":"2020-06-12","proceeding":"NeurIPS 2020 12","authors":["Celestine Mendler-Dünner","Juan C. Perdomo","Tijana Zrnic","Moritz Hardt"],"abstract":"In performative prediction, the choice of a model influences the distribution of future data, typically through actions taken based on the model's predictions. We initiate the study of stochastic optimization for performative prediction. What sets this setting apart from traditional stochastic optimization is the difference between merely updating model parameters and deploying the new model. The latter triggers a shift in the distribution that affects future data, while the former keeps the distribution as is. Assuming smoothness and strong convexity, we prove rates of convergence for both greedily deploying models after each stochastic update (greedy deploy) as well as for taking several updates before redeploying (lazy deploy). In both cases, our bounds smoothly recover the optimal $O(1/k)$ rate as the strength of performativity decreases. Furthermore, they illustrate how depending on the strength of performative effects, there exists a regime where either approach outperforms the other. We experimentally explore the trade-off on both synthetic data and a strategic classification simulator.","url_abs":"https://arxiv.org/abs/2006.06887v4","url_pdf":"https://arxiv.org/pdf/2006.06887v4.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":"stochastic-optimization-for-performative","repo_url":"https://github.com/zykls/performative-prediction","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"prediction","task_name":"Prediction"},{"task_slug":"stochastic-optimization","task_name":"Stochastic Optimization"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2006.06887","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2006.06887"}},"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/zykls/performative-prediction","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":5},"by_repo_kind":{"official":{"samples":5,"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":"a4beb3fd5ce4508e","entry":"best_response","repo":"zykls/performative-prediction","repo_kind":"official","path":"experiments/icml2020/strategic.py","file_url":"https://github.com/zykls/performative-prediction/blob/HEAD/experiments/icml2020/strategic.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":"a4beb3fd5ce4508e"}},{"code_sha256_prefix":"58eb058a90e6bc1f","entry":"best_response","repo":"zykls/performative-prediction","repo_kind":"official","path":"experiments/neurips2020/strategic.py","file_url":"https://github.com/zykls/performative-prediction/blob/HEAD/experiments/neurips2020/strategic.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":"58eb058a90e6bc1f"}},{"code_sha256_prefix":"ca4e433eef8f126a","entry":"load_data","repo":"zykls/performative-prediction","repo_kind":"official","path":"experiments/icml2020/data_prep.py","file_url":"https://github.com/zykls/performative-prediction/blob/HEAD/experiments/icml2020/data_prep.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":"ca4e433eef8f126a"}},{"code_sha256_prefix":"429057339b757eae","entry":"load_data","repo":"zykls/performative-prediction","repo_kind":"official","path":"experiments/neurips2020/data_prep.py","file_url":"https://github.com/zykls/performative-prediction/blob/HEAD/experiments/neurips2020/data_prep.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":"429057339b757eae"}},{"code_sha256_prefix":"519b6f5c1080d76c","entry":"sigmoid","repo":"zykls/performative-prediction","repo_kind":"official","path":"experiments/icml2020/optimization.py","file_url":"https://github.com/zykls/performative-prediction/blob/HEAD/experiments/icml2020/optimization.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":"519b6f5c1080d76c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}