2 releases
Uses old Rust 2015
0.1.1 | Feb 19, 2019 |
---|---|
0.1.0 | Dec 2, 2018 |
#489 in Science
27KB
743 lines
random-forests
A Rust library for Random Forests.
Support for generic impurity measures:
[x] Entropy [x] Gini
installation
Add to your Cargo.toml
:
randomforests = "*"
usage
Add the crate and RandomForests
to your code:
extern crate randomforests;
use randomforests::RandomForest;
Create a Dataset
as collection of Item
s:
let mut dataset = Dataset::new();
let mut item1 = Item::new();
item1.insert("lang".to_string(), Value { data: "rust".to_string() });
item1.insert("typing".to_string(), Value { data: "static".to_string() });
dataset.push(item1);
let mut item2 = Item::new();
item2.insert("lang".to_string(), Value { data: "python".to_string() } );
item2.insert("typing".to_string(), Value { data: "dynamic".to_string() } );
dataset.push(item2);
let mut item3 = Item::new();
item3.insert("lang".to_string(), Value { data: "haskell".to_string() });
item3.insert("typing".to_string(), Value { data: "static".to_string() });
dataset.push(item3);
Initialise the classifier and train it classifier by passing the Dataset
, a TreeConfig
, the number of trees and the data subsample size:
let mut config = TreeConfig::new();
config.decision = "lang".to_string();
let forest = RandomForest::build("lang".to_string(), config, &dataset, 100, 3);
Create a question as an Item
:
let mut question = Item::new();
question.insert("typing".to_string(), Value { data: "static".to_string() });
And get the predictions:
let answer = RandomForest::predict(forest, question);
// answer = {Value { data: haskell }: 48, Value { data: rust }: 52}
Dependencies
~570–800KB
~11K SLoC