Skip to content

ruptures for change point detection

Toby Dylan Hocking edited this page Mar 31, 2025 · 8 revisions

Background

ruptures (1.7k stars on github as of Mar 2025) is a popular python implementation of classic and state-of-the-art change-point detection algorithms, which are reviewed in Selective review of offline change point detection methods. Rebecca Killick maintains a helpful web page with references.

Related work

The Time Series CRAN Task View has a section reviewing R packages for change-point detection. However, there are drawbacks to existing R/python packages.

Details of your coding project

The goal of this project is to re-implement classic (binary segmentation) and state-of-the-art (PELT, FPOP) change-point detection in C++ which can be interfaced with R (and eventually Python).

  • Re-implement core algorithms in C++
    • common distributions (normal, poisson, ...)
    • Dynamic programming
      • PELT for multi-variate data.
      • FPOP for uni-variate data.
    • Binary segmentation
  • R package with consistent API to access each algorithm.
  • Documentation
  • vignettes
  • tests

Expected impact

Ruptures is extremely popular so this project could have a large impact.

Mentors

Contributors, please contact mentors below after completing at least one of the tests below.

  • EVALUATING MENTOR: Charles Truong is the maintainer of ruptures in Python.
  • Toby Hocking [email protected] is the author of numerous R packages, and has been mentor/admin for R-GSOC since 2013.

Tests

Contributors, please do one or more of the following tests before contacting the mentors above.

  • Easy: TODO
  • Medium: TODO
  • Hard: TODO

Solutions of tests

Contributors, please post a link to your test results here.

  • EXAMPLE CONTRIBUTOR 1 NAME, LINK TO GITHUB PROFILE, LINK TO TEST RESULTS.
Clone this wiki locally