[][src]Module smartcore::ensemble::random_forest_classifier

Random forest classifier

Random Forest Classifier

A random forest is an ensemble estimator that fits multiple decision trees to random subsets of the dataset and averages predictions to improve the predictive accuracy and control over-fitting. See ensemble models for more details.

Bigger number of estimators in general improves performance of the algorithm with an increased cost of training time. The random sample of m predictors is typically set to be \(\sqrt{p}\) from the full set of p predictors.

Example:

use smartcore::linalg::naive::dense_matrix::*;
use smartcore::ensemble::random_forest_classifier::RandomForestClassifier;

// Iris dataset
let x = DenseMatrix::from_2d_array(&[
             &[5.1, 3.5, 1.4, 0.2],
             &[4.9, 3.0, 1.4, 0.2],
             &[4.7, 3.2, 1.3, 0.2],
             &[4.6, 3.1, 1.5, 0.2],
             &[5.0, 3.6, 1.4, 0.2],
             &[5.4, 3.9, 1.7, 0.4],
             &[4.6, 3.4, 1.4, 0.3],
             &[5.0, 3.4, 1.5, 0.2],
             &[4.4, 2.9, 1.4, 0.2],
             &[4.9, 3.1, 1.5, 0.1],
             &[7.0, 3.2, 4.7, 1.4],
             &[6.4, 3.2, 4.5, 1.5],
             &[6.9, 3.1, 4.9, 1.5],
             &[5.5, 2.3, 4.0, 1.3],
             &[6.5, 2.8, 4.6, 1.5],
             &[5.7, 2.8, 4.5, 1.3],
             &[6.3, 3.3, 4.7, 1.6],
             &[4.9, 2.4, 3.3, 1.0],
             &[6.6, 2.9, 4.6, 1.3],
             &[5.2, 2.7, 3.9, 1.4],
        ]);
let y = vec![
             0., 0., 0., 0., 0., 0., 0., 0.,
             1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
        ];

let classifier = RandomForestClassifier::fit(&x, &y, Default::default()).unwrap();
let y_hat = classifier.predict(&x).unwrap(); // use the same data for prediction

Structs

RandomForestClassifier

Random Forest Classifier

RandomForestClassifierParameters

Parameters of the Random Forest algorithm. Some parameters here are passed directly into base estimator.