8 个版本
0.1.8 | 2022年10月21日 |
---|---|
0.1.7 | 2022年10月18日 |
0.1.2 | 2022年9月9日 |
在 机器学习 分类中排名 314
每月下载 118 次
在 3 个crate中使用(通过 jams-core)
70KB
876 行
CatBoost Rust 包
Cargo 包
Cargo包可以在这里找到
历史背景
- 这最初是尝试将catboost绑定发布到cargo
- 最终决定非官方地拆分代码并维护独立的Rust绑定,类似于
onnxruntime-rs
- 请注意,这是自愿维护的,尚未得到官方catboost团队的认可
与官方 Rust 包 的不同之处
- 进行了必要的更改,以发布crate而不是引用git仓库,这相当大
- 官方的
catboost-sys
尝试重新构建共享库,而此版本则从GitHub发行版页面下载。 - build.rs 脚本假定已经单独下载了
libcatboost
共享库。 - 还标记了模型为
Send
,使其可以在多个线程中跨线程使用,因为文档表明它是线程安全的。请注意,这尚未经过广泛的测试。 - 到目前为止,catboost版本是硬编码的,当前版本为1.0.6。
如果您需要bindgen的依赖项
apt-get install -y curl build-essential pkg-config libssl-dev libclang-dev clang cmake
安装libcatboost
- 从
https://github.com/catboost/catboost/releases/tag/v1.0.6
下载catboost二进制文件。- 如果您使用Linux,请下载
libcatboostmodel.so
- 如果您使用MacOS,请下载
libcatboostmodel.dylib
- 将文件放置在
/usr/lib/
- 创建指向
x.x.1
的软链接,例如:sudo ln -s libcatboostmodel.so libcatboostmodel.so.1
- 如果您使用Linux,请下载
基本使用示例
- 在您的 Cargo.toml 中添加依赖项
[dependencies]
catboost-rs = "0.1.6"
- 要使用 catboost,它假定共享库可用。您需要从官方 发布页面 下载共享库。如果您使用的是 Linux,请下载
libcatboostmodel.so
。如果您使用的是 Mac,请下载libcatboostmodel.dylib
。目前,仅支持 1.0.6 版本。 - 将这些库移动到
/usr/lib
- 现在您可以在代码中应用预训练模型
// Bring catboost module into the scope
use catboost_rs as catboost;
fn main() {
// Load the trained model
let model = catboost::Model::load("tmp/model.bin").unwrap();
println!("Number of cat features {}", model.get_cat_features_count());
println!("Number of float features {}", model.get_float_features_count());
// Apply the model
let prediction = model
.calc_model_prediction(
vec![
vec![-10.0, 5.0, 753.0],
vec![30.0, 1.0, 760.0],
vec![40.0, 0.1, 705.0],
],
vec![
vec![String::from("north")],
vec![String::from("south")],
vec![String::from("south")],
],
)
.unwrap();
println!("Prediction {:?}", prediction);
}
文档
在 catboost/rust-package
目录中运行 cargo doc --open
测试
在 catboost/rust-package
目录中运行 cargo test
依赖项
~0–2MB
~40K SLoC