A Random Forest Regressor. Random Forest is an estimator that fits number of regression decision trees on various sub-samples of the dataset and uses averaging to improve predictive accuracy and control over fitting.
Attention: Available only with Twin Activate commercial edition.
Syntax
parameters = rfcfit(X,y)
parameters = rfcfit(X,y,options)
Inputs
- X
- Training data.
- Type: double
- Dimension: vector | matrix
- y
- Target values.
- Type: double
- Dimension: vector | matrix
- options
- Type: struct
-
- n_estimators
- The number of trees in the forest (default: 100).
- Type: integer
- Dimension: scalar
- criterion
- Function to measure quality of a split. 'gini' for Gini Impurity (default) and 'entropy' for Information Gain.
- Type: char
- Dimension: string
- max_depth
- The maximum depth of the tree. If not assigned, the nodes are expanded until all leaves are pure or until all leaves contain less than min_samples_split.
- Type: integer
- Dimension: scalar
- min_samples_split
- The minimum number of samples required to split an internal node (default: 2). If integer, consider it as the minimum number; if float, (min_samples_split * number of samples) is taken as the minimum number of samples for each split.
- Type: double | integer
- Dimension: scalar
- min_samples_leaf
- The minimum number of samples required to be at a leaf node (default: 1). If number of samples are less than min_samples_leaf at any node, tree is not built further under that node. If integer, consider it as the minimum number; if float, (min_samples_leaf * number of samples) is taken as the minimum number of samples for each node.
- Type: double | integer
- Dimension: scalar
- min_weight_fraction_leaf
- The minimum weighted fraction of the sum total of weights (of all the input samples) required to be at a leaf node (default: 0).
- Type: double
- Dimension: scalar
- max_features
- The number of features to consider when looking for the best split (default: number of features in training data). If integer: at each split, consider max_features; if float: At each split, consider floor(max_features * n_features).
- Type: double | integer
- Dimension: scalar
- max_leaf_nodes
- Grow trees with max_leaf_nodes in best-first fashion. Best nodes are defined by its reduction in impurity. If not assigned, then trees have possible number of leaf nodes.
- Type: integer
- Dimension: scalar
- min_impurity_decrease
- A node will be split if this split reduces the impurity >= this value (default: 0).
- Type: double
- Dimension: scalar
- bootstrap
- Whether bootstrap samples are used when building trees. If false, the whole dataset is used to build each tree (default: true).
- Type: Boolean
- Dimension: logical
- oob_score
- Whether to use out-of-bag samples to estimate the generalization accuracy (default: false).
- Type: Boolean
- Dimension: logical
- random_state
- Controls the randomness of the model. random_state is the seed used by the random number generator.
- Type: integer
- Dimension: scalar
Outputs
- parameters
- Contains all the values passed to rfcfit method as options. Additionally it has below key-value pairs.
- Type: struct
-
- scorer
- Function handle pointing to 'accuracy' function.
- Type: function handle
- oob_score
- Score of the training dataset obtained using an out-of-bag estimate. It is set only when oob_score = true in options.
- Type: double
- Dimension: scalar
- classes
- The class labels (single output problem), or a matrix of class labels (multi-output problem).
- Type: double
- Dimension: vector | matrix
- n_samples
- Number of rows in the training data.
- Type: integer
- Dimension: scalar
- n_features
- Number of columns in the training data.
- Type: integer
- Dimension: scalar
Example
Usage of rfcfit
data = dlmread(‘iris.csv', ',', 1);
X = data(:,1:end-1);
y = data(:,end);
parameters = rfcfit(X, y, options);
> parameters
parameters = struct [
bootstrap: 1
classes: [Matrix] 1 x 3
0 1 2
criterion: gini
min_impurity_decrease: 0
min_samples_leaf: 1
min_samples_split: 2
min_weight_fraction_leaf: 0
n_estimators: 100
n_features: 4
n_samples: 150
oob_score: oob_score not set to true while training
]
Comments
The sub-sample size is always the same as original input size but samples are drawn with replacement if bootstrap is set to true (default). If parameters like max_depth, min_samples_leaf are unassigned (default values are chosen), it leads to fully grown, unpruned trees which can be very large on some datasets. To reduce memory consumption, the complexity and size of the trees should be controlled by setting those parameter values. The features are always randomly permuted at each split. Even when max_features = number of features in dataset and bootstrap = false, the best found split may vary. random_state has to be fixed to obtain a deterministic behaviour.
Output 'parameters' should be passed as input to rfcpredict function.