1 个不稳定版本

使用旧的 Rust 2015

0.3.0 2023 年 1 月 31 日

#658机器学习

每月 32 次下载

MIT 许可证

4.5MB
81K SLoC

C++ 48K SLoC // 0.1% comments FORTRAN Legacy 23K SLoC // 0.4% comments C 3.5K SLoC // 0.4% comments CUDA 3.5K SLoC // 0.1% comments Python 1K SLoC // 0.2% comments Shell 529 SLoC // 0.1% comments Rust 522 SLoC // 0.0% comments Visual Studio Project 343 SLoC SWIG 341 SLoC // 0.3% comments Visual Studio Solution 32 SLoC Bitbake 1 SLoC JavaScript 1 SLoC

lightgbm-rs

LightGBM Rust 绑定

这个分支是一个正在进行中的工作。我打算从 vaaaaanquish 更新这个包。

需求

您需要一个可以构建 LightGBM 的环境。

# linux
apt install -y cmake libclang-dev libc++-dev gcc-multilib

# OS X
brew install cmake libomp

在 Windows 上

  1. 安装 CMake 和 VS 构建工具。
  2. 安装 LLVM 并设置环境变量 LIBCLANG_PATH 为 PATH_TO_LLVM_BINARY(例如:C:\Program Files\LLVM\bin

请参见下文以获取详细信息。

用法

LightGBM 训练示例。

extern crate serde_json;
use lightgbm::{Dataset, Booster};
use serde_json::json;

let data = vec![vec![1.0, 0.1, 0.2, 0.1],
               vec![0.7, 0.4, 0.5, 0.1],
               vec![0.9, 0.8, 0.5, 0.1],
               vec![0.2, 0.2, 0.8, 0.7],
               vec![0.1, 0.7, 1.0, 0.9]];
let label = vec![0.0, 0.0, 0.0, 1.0, 1.0];
let dataset = Dataset::from_mat(data, label).unwrap();
let params = json!{
   {
        "num_iterations": 3,
        "objective": "binary",
        "metric": "auc"
    }
};
let bst = Booster::train(dataset, &params).unwrap();

有关详细信息,请参阅 ./examples

示例 链接
二进制分类 链接
多类分类 链接
回归 链接

开发

git clone --recursive https://github.com/andreclaudino/lightgbm-rs
docker build -t lgbmrs .
docker run -it -v $PWD:/app lgbmrs bash

# cargo build

感谢

在实现和文档中引用了很多。谢谢。

依赖项

~2–7MB
~143K SLoC