An open API service indexing awesome lists of open source software.

https://github.com/mathew-kurian/bayesianchangepointjs

📈Pure JavaScript/TypeScript Bayesian changepoint detection for Browsers & NodeJS
https://github.com/mathew-kurian/bayesianchangepointjs

alerts analysis bayesian browser changepoint commonjs detection javascript nodejs typescript

Last synced: 11 months ago
JSON representation

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

Awesome Lists containing this project

README

          

## Bayesian Online ChangePoint JS Detection

[![Edit BayesianChangePointJS](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/hopeful-hawking-vpftt?fontsize=14&hidenavigation=1&theme=dark)

Pure JavaScript/TypeScript implementation of [Bayesian Online Changepoint](https://arxiv.org/pdf/0710.3742.pdf) detection which runs for Browsers & NodeJS.

## Example

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

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

return false;
};

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

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

const detection = new BayesianChangePoint({
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

```bash
npm install
npm test
```

## Credits

Based off of [Bayesian Online Changepoint](https://arxiv.org/pdf/0710.3742.pdf)