@bonniernews/xgboost

XGBoost in Node.js


Keywords
xgboost, machine learning, classifier, gbm, algorithm, ensemble, kaggle, kaggle competition, python, dmlc, boosting-algorithms, gbdt, javascript, machine-learning, nodejs
License
Apache-2.0
Install
npm install @bonniernews/xgboost@2.0.0

Documentation

XGBoost-Node

Build Status NPM version codecov license

eXtreme Gradient Boosting Package in Node.js

XGBoost-Node is a Node.js interface of XGBoost. XGBoost is a library from DMLC. It is designed and optimized for boosted trees. The underlying algorithm of XGBoost is an extension of the classic gbm algorithm. With multi-threads and regularization, XGBoost is able to utilize more computational power and get a more accurate prediction.

The package is made to run existing XGBoost model with Node.js easily.

Features

  • Runs XGBoost Model and make predictions in Node.js.

  • Both dense and sparse matrix input are supported, and missing value is handled.

  • Supports Linux, macOS.

Install

Install from npm

npm install xgboost

Install from GitHub

git clone --recursive git@github.com:nuanio/xgboost-node.git
npm install

Documentation

Roadmap

  • Matrix API
  • Model API
  • Prediction API
  • Async API
  • Windows Support
  • Training API
  • Visualization API

Examples

Train a XGBoost model and save to a file, more in doc.

Load the model with XGBoost-Node:

const xgboost = require('xgboost');
const model = xgboost.XGModel('iris.xg.model');

const input = new Float32Array([
  5.1,  3.5,  1.4,  0.2, // class 0
  6.6,  3. ,  4.4,  1.4, // class 1
  5.9,  3. ,  5.1,  1.8  // class 2
]);

const mat = new xgboost.matrix(input, 3, 4);
console.log(model.predict(mat));
// {
//   value: [
//     0.991, 0.005, 0.004, // class 0
//     0.004, 0.990, 0.006, // class 1
//     0.005, 0.035, 0.960, // class 2
//   ],
//   error: undefined,      // no error
// }

const errModel = xgboost.XGModel('data/empty');
console.log(errModel);
console.log(errModel.predict());

Contributing

Your help and contribution is very valuable. Welcome to submit issue and pull requests. Learn more