Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add README for JS package #221

Merged
merged 2 commits into from
Dec 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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'),
]);
sd2k marked this conversation as resolved.
Show resolved Hide resolved

// 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
Loading