Skip to main content

Module extra_trees_regressor

Module extra_trees_regressor 

Source
Expand description

§Extra Trees Regressor

An Extra-Trees (Extremely Randomized Trees) regressor is an ensemble learning method that fits multiple randomized decision trees on the dataset and averages their predictions to improve accuracy and control over-fitting.

It is similar to a standard Random Forest, but introduces more randomness in the way splits are chosen, which can reduce the variance of the model and often make the training process faster.

The two key differences from a standard Random Forest are:

  1. It uses the whole original dataset to build each tree instead of bootstrap samples.
  2. When splitting a node, it chooses a random split point for each feature, rather than the most optimal one.

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::basic::matrix::DenseMatrix;
use smartcore::ensemble::extra_trees_regressor::*;

// Longley dataset ([https://www.statsmodels.org/stable/datasets/generated/longley.html](https://www.statsmodels.org/stable/datasets/generated/longley.html))
let x = DenseMatrix::from_2d_array(&[
    &[234.289, 235.6, 159., 107.608, 1947., 60.323],
    &[259.426, 232.5, 145.6, 108.632, 1948., 61.122],
    &[258.054, 368.2, 161.6, 109.773, 1949., 60.171],
    &[284.599, 335.1, 165., 110.929, 1950., 61.187],
    &[328.975, 209.9, 309.9, 112.075, 1951., 63.221],
    &[346.999, 193.2, 359.4, 113.27, 1952., 63.639],
    &[365.385, 187., 354.7, 115.094, 1953., 64.989],
    &[363.112, 357.8, 335., 116.219, 1954., 63.761],
    &[397.469, 290.4, 304.8, 117.388, 1955., 66.019],
    &[419.18, 282.2, 285.7, 118.734, 1956., 67.857],
    &[442.769, 293.6, 279.8, 120.445, 1957., 68.169],
    &[444.546, 468.1, 263.7, 121.95, 1958., 66.513],
    &[482.704, 381.3, 255.2, 123.366, 1959., 68.655],
    &[502.601, 393.1, 251.4, 125.368, 1960., 69.564],
    &[518.173, 480.6, 257.2, 127.852, 1961., 69.331],
    &[554.894, 400.7, 282.7, 130.081, 1962., 70.551],
]).unwrap();
let y = vec![
    83.0, 88.5, 88.2, 89.5, 96.2, 98.1, 99.0, 100.0, 101.2,
    104.6, 108.4, 110.8, 112.6, 114.2, 115.7, 116.9
];

let regressor = ExtraTreesRegressor::fit(&x, &y, Default::default()).unwrap();

let y_hat = regressor.predict(&x).unwrap(); // use the same data for prediction

Structs§

ExtraTreesRegressor
Extra Trees Regressor
ExtraTreesRegressorParameters
Parameters of the Extra Trees Regressor Some parameters here are passed directly into base estimator.