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
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")
model = ydf.GradientBoostedTreesLearner(label="income", pure_serving_model=True).train(train_ds)
model.save("/tmp/my_model")
With NodeJS and CommonJS
(async function (){
const ydf = await require("yggdrasil-decision-forests")();
const fs = require("node:fs");
let model = await ydf.loadModelFromZipBlob(fs.readFileSync("./model.zip"));
let examples = {
"f1": [2, 6, null, 3],
"f2": ["A", "A", "B", "A"],
};
let predictions = model.predict(examples);
console.log("predictions:", predictions);
model.unload();
}())
With NodeJS and ES6
import * as fs from "node:fs";
import YggdrasilDecisionForests from 'yggdrasil-decision-forests';
let ydf = await YggdrasilDecisionForests();
let model = await ydf.loadModelFromZipBlob(fs.readFileSync("./model.zip"));
let examples = {
"f1": [2, 6, null, 3],
"f2": ["A", "A", "B", "A"],
};
let predictions = model.predict(examples);
console.log("predictions:", predictions);
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
git clone google/yggdrasil-decision-forests
yggdrasil_decision_forests/port/javascript/tools/build_zipped_library.sh