Skip to content

📈Pure JavaScript/TypeScript Bayesian changepoint detection for Browsers & NodeJS

Notifications You must be signed in to change notification settings

mathew-kurian/BayesianChangePointJS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bayesian Online ChangePoint JS Detection

Edit BayesianChangePointJS

Pure JavaScript/TypeScript implementation of Bayesian Online Changepoint detection which runs for Browsers & NodeJS.

Example

import assert from "assert";
import BayesianChangePoint, { BreakPoint } from "bayesian-changepoint";

const breakpointVerifier = (
  next: BreakPoint<number>,
  prev: BreakPoint<number>
): boolean => {
  if (Math.abs(next.data - prev.data) >= 5) {
    return true;
  }

  return false;
};

const values = (breakPoints: BreakPoint<number>[]): number[] => {
  return breakPoints.map(breakPoint => breakPoint.data);
};

const indicies = (breakPoints: BreakPoint<number>[]): number[] => {
  return breakPoints.map(breakPoint => breakPoint.index);
};

const detection = new BayesianChangePoint<number>({
  breakpointVerifier
});

detection.exec([10, 10, 10, 10, 5000, 5000, 5000, 5000, 30, 30, 30, 30, 30]);

assert.deepEqual(values(detection.breakPoints()), [5000, 30]);
assert.deepEqual(indicies(detection.breakPoints()), [4, 8]);

Installation

npm install
npm test

Credits

Based off of Bayesian Online Changepoint