mathew-kurian / BayesianChangePointJS

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

Home Page:https://arxiv.org/pdf/0710.3742.pdf

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

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

https://arxiv.org/pdf/0710.3742.pdf


Languages

Language:TypeScript 54.0%Language:JavaScript 46.0%