Skip to content

Commit

Permalink
docs: add README for JS package (#221)
Browse files Browse the repository at this point in the history
  • Loading branch information
sd2k authored Dec 23, 2024
1 parent 2d941c8 commit c19e898
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 0 deletions.
63 changes: 63 additions & 0 deletions js/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# augurs

[![npm](https://img.shields.io/npm/v/@bsull/augurs)](https://www.npmjs.com/package/@bsull/augurs)
[![npm](https://img.shields.io/npm/dm/@bsull/augurs)](https://www.npmjs.com/package/@bsull/augurs)
[![npm](https://img.shields.io/npm/l/@bsull/augurs)](https://www.npmjs.com/package/@bsull/augurs)

JavaScript bindings for the augurs time series framework.

## Installation

Add this package to your project with:

```bash
npm install @bsull/augurs
```

## Usage

Full usage docs are still to come, but here's a quick example:

```js
import initProphet, { Prophet } from '@bsull/augurs/prophet';
import initTransforms, { Pipeline, Transform } from '@bsull/augurs/transforms';
// Note: you'll need this extra package if you want to use the Prophet model.
import { optimizer } from '@bsull/augurs-prophet-wasmstan';

// Initialize the WASM components before using any augurs functions.
await Promise.all([initProphet(), initTransforms()]);

// Create a pipeline which will apply a Yeo-Johnson transform and a standard scaler.
const pipeline = new Pipeline([
new Transform('yeoJohnson'),
new Transform('standardScaler'),
]);

// Create a Prophet model with the WASM-based optimizer.
const prophet = new Prophet({ optimizer });

const ds = [1704067200, 1704871384, 1705675569, 1706479753, 1707283938, 1708088123,
const y = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0];

// Fit the pipeline to the data.
const yTransformed = pipeline.fitTransform(y);

// Fit the Prophet model to the transformed data.
prophet.fit({ ds, y: yTransformed });

// Make in-sample predictions and back-transform them.
const preds = prophet.predict();
const yhat = {
point: pipeline.inverseTransform(preds.yhat.point),
intervals: {
lower: pipeline.inverseTransform(preds.yhat.lower),
upper: pipeline.inverseTransform(preds.yhat.upper),
},
};
```

See the [documentation](https://docs.augu.rs/js/getting-started/quick-start) for more information.

## License

This project is dual-licensed under the [Apache 2.0](LICENSE-APACHE) and [MIT](LICENSE-MIT) licenses.
4 changes: 4 additions & 0 deletions js/justfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ build: \
(build-inner "seasons") \
(build-inner "transforms")
just fix-package-json
just copy-readme

build-inner target args='':
cd augurs-{{target}}-js && \
Expand All @@ -31,6 +32,9 @@ fix-package-json:
jq < augurs/package.json ". | .version = \"$VERSION\"" > augurs/package.json.tmp
mv augurs/package.json.tmp augurs/package.json
copy-readme:
cp README.md augurs/README.md

test:
cd testpkg && \
npm ci && \
Expand Down

0 comments on commit c19e898

Please sign in to comment.