Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

yggdrasil-decision-forests

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

yggdrasil-decision-forests

Utility to run YDF decision forest machine learning models in JS.

  • 0.0.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.3K
increased by12.81%
Maintainers
1
Weekly downloads
 
Created
Source

YDF in NPM

This package makes it possible to run decision forest models in browser and with NodeJS.

Usage example

The first step is to train a decision forests model using YDF.

Let's train a model in Python.

import ydf
import pandas as pd

# Download a training dataset
ds_path = "https://raw.githubusercontent.com/google/yggdrasil-decision-forests/main/yggdrasil_decision_forests/test_data/dataset/"
train_ds = pd.read_csv(ds_path + "adult_train.csv")

# Train a Gradient Boosted Trees model
model = ydf.GradientBoostedTreesLearner(label="income", pure_serving_model=True).train(train_ds)

# Save the model
model.save("/tmp/my_model")

# DO NOT SUBMIT => ZIP or Serialized.

With NodeJS and CommonJS

(async function (){
    // Load the YDF library
    const ydf = await require("yggdrasil-decision-forests")();

    // Load the model
    const fs = require("node:fs");
    let model = await ydf.loadModelFromZipBlob(fs.readFileSync("./model.zip"));

    // Create a batch of examples.
    let examples = {
        "f1": [2, 6, null, 3],
        "f2": ["A", "A", "B", "A"],
    };


    // Make predictions
    let predictions = model.predict(examples);
    console.log("predictions:", predictions);

    // Release model
    model.unload();
}())

With NodeJS and ES6

import * as fs from "node:fs";
import YggdrasilDecisionForests from 'yggdrasil-decision-forests';

// Load the YDF library
let ydf = await YggdrasilDecisionForests();

// Load the model
let model = await ydf.loadModelFromZipBlob(fs.readFileSync("./model.zip"));

// Create a batch of examples.
let examples = {
        "f1": [2, 6, null, 3],
        "f2": ["A", "A", "B", "A"],
    };

// Make predictions
let predictions = model.predict(examples);
console.log("predictions:", predictions);

// Release model
model.unload();

In Browser

<script src="./node_modules/yggdrasil-decision-forests/dist/inference.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.0/jszip.min.js"></script>
<script>
YggdrasilDecisionForests()
    .then(ydf => ydf.loadModelFromUrl("http://localhost:3000/model.zip"))
    .then(model => {
        let examples = {
            "f1": [2, 6, null, 3],
            "f2": ["A", "A", "B", "A"],
        };
        predictions = model.predict(examples);
        model.unload();
    });
</script>

Developer

Run unit tests

npm test

Update the binary bundle

# Download YDF
git clone google/yggdrasil-decision-forests

# Compile the YDF with WebAssembly
yggdrasil_decision_forests/port/javascript/tools/build_zipped_library.sh

# Extract the the content of `yggdrasil_decision_forests/dist/ydf.zip` in `dist`.

Keywords

FAQs

Package last updated on 30 May 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc