3 个不稳定版本
使用旧的 Rust 2015
0.2.0 | 2018年3月29日 |
---|---|
0.1.1 | 2017年10月7日 |
0.1.0 | 2017年10月7日 |
#450 in 机器学习
每月 22 次下载
29KB
523 代码行
Stamm
Stamm 是一个 Rust 库,以非常通用的方式创建决策树和随机森林。决策树用于机器学习中的分类和回归。随机森林将一些决策树捆绑起来,以实现更精确的分类或回归。
此库允许您指定树中节点内的数据和特征以及训练的准则。任何数据都可以用于分类,任何数据都可以是树的输出。因此,概率输出可用于分类,数值输出可用于回归。此外,这也适用于随机森林。
以一个例子为例,我之前使用这个库编写了一个 hough forest。我稍后会尝试发布该代码。
此库可以使用 rayon 来并行化随机森林的训练和预测。对于序列化和反序列化,使用 serde。因此,您可以保存树和随机森林为 json、yaml、MessagePack 等(见这里)。
在库中可以找到使用 Stamm 的数值树实现。在 examples
目录中可以找到一个使用此数值树的示例。
文档
用法
在 Rust 中,如往常一样,将 Stamm 添加到 Cargo.toml 中的依赖项
[dependencies]
stamm = "*"
然后将其添加到您的 main.rs 或 lib.rs 中
extern crate stamm;
如果您想创建自己的树,您必须实现 TreeLearnFunctions
特性。您可以使用类似以下内容来训练您的树
let trainings_set = vec![some awesome training data];
let learn_function = MySpecialTreeLearnFunction::new();
let learner = TreeParameters::new();
let learned_tree = learner.learn_tree(learn_function, &trainings_set);
然后像这样使用您的学习树
let to_predict = some_awesome_data_top_redict;
let result = learned_tree.predict(&to_predict);
训练随机森林非常简单
let forest_learner = RandomForestLearnParam::new(10 /* number of trees */, 50 /* size of the trainings subset used for a tree */, learn_function /* see above */);
let trained_forest = forest_learner.train_forest(&trainings_set).unwrap();
// Or if the types you are using support it - train the forest parallel
let trained_forest = forest_learner.train_forest_parallel(&trainings_set).unwrap();
使用它
let result_list =
trained_forest.forest_predictions(&to_predict);
// Or to parallelize it
let result_list =
trained_forest.forest_predictions_parallel(&to_predict);
您将获得一个包含森林中每个树的结果的向量。您可以按需将其组合。例如,如果您想预测,您可以将所有预测的平均值取为一个结果。
许可
Stamm 在 Apache License,版本 2.0 的条款下分发。
依赖项
~2–2.9MB
~57K SLoC