lightgbm3-rs - Rust bindings for LightGBM
lightgbm3-rs
is based on lightgbm-rs
(which is unsupported by now), but it is not back-compatible with it.
Installation
cargo add --git https://github.com/Mottl/lightgbm3-rs.git lightgbm3
Since lightgbm3
compiles LightGBM
, you also need to install development libraries:
for Linux:
apt install -y cmake clang libclang-dev libc++-dev gcc-multilib
for Mac (only if you choose to compile with openmp
feature):
brew install cmake libomp
for Windows
- Install CMake and VS Build Tools.
- Install LLVM and set an environment variable
LIBCLANG_PATH
to PATH_TO_LLVM_BINARY (example:C:\Program Files\LLVM\bin
)
Please see below for details.
Usage
Training:
use ;
use json;
let features = vec!;
let labels = vec!;
let dataset = from_vec_of_vec.unwrap;
let params = json!;
let bst = train.unwrap;
bst.save_file.unwrap;
Inference:
use ;
let bst = from_file.unwrap;
let features = vec!;
let n_features = features.len;
let y_pred = bst.predict.unwrap;
Look in the ./examples/
folder for more details:
Features
lightgbm3
supports the following features:
polars
for polars supportopenmp
for MPI supportgpu
for GPU supportcuda
for experimental CUDA support
Benchmarks
cargo bench
Add --features=openmp
, --features=gpu
and --features=cuda
appropriately.
Development
git clone --recursive https://github.com/Mottl/lightgbm3-rs.git
Thanks
Great respect to vaaaaanquish for the LightGBM rust package, which, unfortunately no longer supported.
Much reference was made to implementation and documentation. Thanks.