6 个版本

0.2.4 2023 年 12 月 6 日
0.2.3 2023 年 12 月 6 日
0.1.0 2023 年 8 月 30 日

#194 in 机器学习

每月 25 次下载

MIT 许可证

3MB
1.5K SLoC

Rust 1K SLoC // 0.0% comments Jupyter Notebooks 209 SLoC Python 143 SLoC // 0.5% comments

Rustrees:具有 Python 绑定的 Rust 中的决策树和随机森林

Build Status PyPI version Rust Package Documentation License: MIT

概述

Rustrees 是一个用 Rust 编写的、具有 Python 绑定的高效决策树和随机森林库。它的目标是提供与 Sklearn 相当的速度,同时具有 Rust 的可靠性和性能。

功能

  • 🏎️ 速度:平均与 Sklearn 一样快。
  • 🔗 Python 绑定:轻松与 Python 集成。
  • 🔒 类型安全:从 Rust 的强大类型系统受益。

Python

安装

pip install rustrees

快速开始

from sklearn.metrics import accuracy_score
from sklearn import datasets
import rustrees.decision_tree as rt_dt

df = datasets.load_breast_cancer()

model = rt_dt.DecisionTreeClassifier(max_depth=5).fit(df["data"], df["target"])

acc = accuracy_score(df["target"], model.predict(df["data"]))

print("accuracy", acc)

Rust

安装

cargo add rustrees

快速开始

use rustrees::{DecisionTree, Dataset, r2};

let dataset = Dataset::read_csv("iris.csv", ",");

let dt = DecisionTree::train_reg(
   &dataset, 
   5,        // max_depth
   Some(1),  // min_samples_leaf        
   Some(42), // random_state
);

let pred = dt.predict(&dataset);

println!("r2 score: {}", r2(&dataset.target_vector, &pred));

开发

首先,创建一个虚拟环境(只需要做一次)

python -m venv .env

然后,激活虚拟环境(每次都需要做)

source .env/bin/activate

现在,安装需求(只需要做一次)

pip install -r requirements.txt

最后,使用以下命令在本地虚拟环境中安装 Python 库(每次更改 Rust 代码时都需要做)

maturin develop --release

现在,您可以在 Python 中导入 rustrees 库。这也可以从 Jupyter 笔记本中完成。为此,运行以下命令

jupyter notebook

然后,在笔记本中导入库

import rustrees.decision_tree as rt_dt

依赖关系

~17–25MB
~356K SLoC