Crates.io | randomforests |
lib.rs | randomforests |
version | 0.1.1 |
source | src |
created_at | 2018-12-02 10:26:55.302991 |
updated_at | 2019-02-19 20:23:59.629879 |
description | A simple random forest classifier. |
homepage | https://gitlab.com/ruivieira/random-forests |
repository | https://gitlab.com/ruivieira/random-forests |
max_upload_size | |
id | 99647 |
size | 38,550 |
A Rust library for Random Forests.
Support for generic impurity measures:
[x] Entropy [x] Gini
Add to your Cargo.toml
:
randomforests = "*"
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}