$ npm install ml-xgboost
import IrisDataset from 'ml-dataset-iris';
require('ml-xgboost').then(XGBoost => {
var booster = new XGBoost({
booster: 'gbtree',
objective: 'multi:softmax',
max_depth: 5,
eta: 0.1,
min_child_weight: 1,
subsample: 0.5,
colsample_bytree: 1,
silent: 1,
iterations: 200
});
var trainingSet = IrisDataset.getNumbers();
var predictions = IrisDataset.getClasses().map(
(elem) => IrisDataset.getDistinctClasses().indexOf(elem)
);
booster.train(dataset, trueLabels);
var predictDataset = /* something to predict */
var predictions = booster.predict(predictDataset);
// don't forget to free your model
booster.free()
// you can save your model in this way
var model = JSON.stringify(booster); // string
// or
var model = booster.toJSON(); // object
// and load it
var anotherBooster = XGBoost.load(model); // model is an object, not a string
});
- You should have emscripten sdk-1.37.22 installed on your computer and be able to use
emcc
andem++
. - Download the repo:
git clone --recursive https://github.com/mljs/xgboost
- Run
npm run build
ormake
at the root directory.
-
dmlc-core/include/dmlc/base.h line 45 here
-
rabit/include/dmlc/base.h line 45 here
#if (!defined(DMLC_LOG_STACK_TRACE) && defined(__GNUC__) && !defined(__MINGW32__)) #define DMLC_LOG_STACK_TRACE 1 #undef DMLC_LOG_STACK_TRACE #endif
Note: this is to avoid compilation issues with the execinfo.h library that is not needed in the JS library
-
in case that you get the following error:
./xgboost/include/xgboost/c_api.h:29:9: error: unknown type name 'uint64_t'
just add this import at the beginning of this file after the first
define
:#include <stdint.h>
© Contributors, 2016. Licensed under an Apache-2 license.