{"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/an-evaluation-of-change-point-detection","title":"An Evaluation of Change Point Detection Algorithms","arxiv_id":"2003.06222","date":"2020-03-13","proceeding":null,"authors":["Gerrit J. J. van den Burg","Christopher K. I. Williams"],"abstract":"Change point detection is an important part of time series analysis, as the presence of a change point indicates an abrupt and significant change in the data generating process. While many algorithms for change point detection have been proposed, comparatively little attention has been paid to evaluating their performance on real-world time series. Algorithms are typically evaluated on simulated data and a small number of commonly-used series with unreliable ground truth. Clearly this does not provide sufficient insight into the comparative performance of these algorithms. Therefore, instead of developing yet another change point detection method, we consider it vastly more important to properly evaluate existing algorithms on real-world data. To achieve this, we present a data set specifically designed for the evaluation of change point detection algorithms that consists of 37 time series from various application domains. Each series was annotated by five human annotators to provide ground truth on the presence and location of change points. We analyze the consistency of the human annotators, and describe evaluation metrics that can be used to measure algorithm performance in the presence of multiple ground truth annotations. Next, we present a benchmark study where 14 algorithms are evaluated on each of the time series in the data set. Our aim is that this data set will serve as a proving ground in the development of novel change point detection algorithms.","url_abs":"https://arxiv.org/abs/2003.06222v3","url_pdf":"https://arxiv.org/pdf/2003.06222v3.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":"an-evaluation-of-change-point-detection","repo_url":"https://github.com/alan-turing-institute/AnnotateChange","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"an-evaluation-of-change-point-detection","repo_url":"https://github.com/alan-turing-institute/TCPD","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"an-evaluation-of-change-point-detection","repo_url":"https://github.com/alan-turing-institute/TCPDBench","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[{"task_slug":"change-point-detection","task_name":"Change Point Detection"},{"task_slug":"time-series-1","task_name":"Time Series"},{"task_slug":"time-series","task_name":"Time Series Analysis"}],"methods":[],"datasets_introduced":[{"slug":"turing-change-point-dataset","name":"Turing Change Point Dataset","full_name":""}],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2003.06222","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2003.06222"}},"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/alan-turing-institute/AnnotateChange","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/alan-turing-institute/TCPD","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/alan-turing-institute/TCPDBench","reach":null}],"summary":{"ran_fixture":1,"ran_draft_wrong":6,"unverified":2},"by_repo_kind":{"official":{"samples":9,"ran":7,"repositories":2}},"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":"32d759dff80d8514","entry":"clean_cps","repo":"alan-turing-institute/TCPDBench","repo_kind":"official","path":"analysis/scripts/summarize.py","file_url":"https://github.com/alan-turing-institute/TCPDBench/blob/HEAD/analysis/scripts/summarize.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"32d759dff80d8514"}},{"code_sha256_prefix":"2abd80ade287668c","entry":"frac_to_dt","repo":"alan-turing-institute/TCPD","repo_kind":"official","path":"utils/plot_dataset.py","file_url":"https://github.com/alan-turing-institute/TCPD/blob/HEAD/utils/plot_dataset.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2abd80ade287668c"}},{"code_sha256_prefix":"dc1396f0c3ccf1f9","entry":"load_annotations","repo":"alan-turing-institute/TCPDBench","repo_kind":"official","path":"analysis/scripts/summarize.py","file_url":"https://github.com/alan-turing-institute/TCPDBench/blob/HEAD/analysis/scripts/summarize.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dc1396f0c3ccf1f9"}},{"code_sha256_prefix":"516e4b18b1e92e6b","entry":"load_data","repo":"alan-turing-institute/TCPD","repo_kind":"official","path":"utils/plot_dataset.py","file_url":"https://github.com/alan-turing-institute/TCPD/blob/HEAD/utils/plot_dataset.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"516e4b18b1e92e6b"}},{"code_sha256_prefix":"a5589988233d11df","entry":"load_dataset_script","repo":"alan-turing-institute/TCPD","repo_kind":"official","path":"build_tcpd.py","file_url":"https://github.com/alan-turing-institute/TCPD/blob/HEAD/build_tcpd.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a5589988233d11df"}},{"code_sha256_prefix":"811e1abb6d8304bb","entry":"load_json","repo":"alan-turing-institute/TCPDBench","repo_kind":"official","path":"analysis/scripts/summarize.py","file_url":"https://github.com/alan-turing-institute/TCPDBench/blob/HEAD/analysis/scripts/summarize.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"811e1abb6d8304bb"}},{"code_sha256_prefix":"e760a298613383f4","entry":"load_result","repo":"alan-turing-institute/TCPD","repo_kind":"official","path":"utils/plot_dataset.py","file_url":"https://github.com/alan-turing-institute/TCPD/blob/HEAD/utils/plot_dataset.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e760a298613383f4"}},{"code_sha256_prefix":"720f4672c2ed9380","entry":"clean_dataset","repo":"alan-turing-institute/TCPD","repo_kind":"official","path":"build_tcpd.py","file_url":"https://github.com/alan-turing-institute/TCPD/blob/HEAD/build_tcpd.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":"720f4672c2ed9380"}},{"code_sha256_prefix":"674086fdf66aa215","entry":"collect_dataset","repo":"alan-turing-institute/TCPD","repo_kind":"official","path":"build_tcpd.py","file_url":"https://github.com/alan-turing-institute/TCPD/blob/HEAD/build_tcpd.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":"674086fdf66aa215"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}