{"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/scalable-online-change-detection-for-high","title":"Maximum Mean Discrepancy on Exponential Windows for Online Change Detection","arxiv_id":"2205.12706","date":"2022-05-25","proceeding":null,"authors":["Florian Kalinke","Marco Heyden","Georg Gntuni","Edouard Fouché","Klemens Böhm"],"abstract":"Detecting changes is of fundamental importance when analyzing data streams and has many applications, e.g., in predictive maintenance, fraud detection, or medicine. A principled approach to detect changes is to compare the distributions of observations within the stream to each other via hypothesis testing. Maximum mean discrepancy (MMD), a (semi-)metric on the space of probability distributions, provides powerful non-parametric two-sample tests on kernel-enriched domains. In particular, MMD is able to detect any disparity between distributions under mild conditions. However, classical MMD estimators suffer from a quadratic runtime complexity, which renders their direct use for change detection in data streams impractical. In this article, we propose a new change detection algorithm, called Maximum Mean Discrepancy on Exponential Windows (MMDEW), that combines the benefits of MMD with an efficient computation based on exponential windows. We prove that MMDEW enjoys polylogarithmic runtime and logarithmic memory complexity and show empirically that it outperforms the state of the art on benchmark data streams.","url_abs":"https://arxiv.org/abs/2205.12706v3","url_pdf":"https://arxiv.org/pdf/2205.12706v3.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":"scalable-online-change-detection-for-high","repo_url":"https://github.com/flopska/mmdew-change-detector","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"change-detection","task_name":"Change Detection"},{"task_slug":"fraud-detection","task_name":"Fraud Detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2205.12706","atlas_url":"https://app.syntology.ai/?focus=2205.12706","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2205.12706"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/flopska/mmdew-change-detector","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":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":"ba1bcb16142a8940","entry":"est_gamma","repo":"flopska/mmdew-change-detector","repo_kind":"official","path":"src/mmdew/fast_rbf_kernel.py","file_url":"https://github.com/flopska/mmdew-change-detector/blob/HEAD/src/mmdew/fast_rbf_kernel.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ba1bcb16142a8940"}},{"code_sha256_prefix":"1f255c6bfe54e5c2","entry":"preprocess","repo":"flopska/mmdew-change-detector","repo_kind":"official","path":"src/base.py","file_url":"https://github.com/flopska/mmdew-change-detector/blob/HEAD/src/base.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1f255c6bfe54e5c2"}},{"code_sha256_prefix":"e8292963cfa0f4d5","entry":"sns_markers","repo":"flopska/mmdew-change-detector","repo_kind":"official","path":"src/base.py","file_url":"https://github.com/flopska/mmdew-change-detector/blob/HEAD/src/base.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e8292963cfa0f4d5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}