eXtreme Gradient Boosting in Julia
This package is a Julia interface of XGBoost. It is an efficient and scalable implementation of distributed gradient boosting framework. The package includes efficient linear model solver and tree learning algorithms. The library is parallelized using OpenMP, and it can be more than 10 times faster than some existing gradient boosting packages. It supports various objective functions, including regression, classification and ranking. The package is also made to be extensible, so that users are also allowed to define their own objectives easily.
] add XGBoost
] develop "https://github.com/dmlc/XGBoost.jl.git" ] build XGBoost
By default, the package installs prebuilt binaries for XGBoost
v0.82.0 on Linux, MacOS and Windows. Only the linux version is built with OpenMP.
To show how XGBoost works, here is an example of dataset Mushroom
XGBoost support Julia
SparseMatrixCSC, libSVM format text and XGBoost binary
file as input. Here is an example of Mushroom classification. This example will use the function
readlibsvm in basic_walkthrough.jl. This function load libsvm
format text into Julia dense matrix.
using XGBoost train_X, train_Y = readlibsvm("data/agaricus.txt.train", (6513, 126)) test_X, test_Y = readlibsvm("data/agaricus.txt.test", (1611, 126))
num_round = 2 bst = xgboost(train_X, num_round, label = train_Y, eta = 1, max_depth = 2)
pred = predict(bst, test_X) print("test-error=", sum((pred .> 0.5) .!= test_Y) / float(size(pred)), "\n")
nfold = 5 param = ["max_depth" => 2, "eta" => 1, "objective" => "binary:logistic"] metrics = ["auc"] nfold_cv(train_X, num_round, nfold, label = train_Y, param = param, metrics = metrics)
Check XGBoost Documentation
5 days ago