A decision tree regressor.
Syntax
parameters = dtrfit(X,y)
parameters = dtrfit(X,y,options)
Inputs
 X
 Training data.
 Type: double
 Dimension: vector  matrix
 y
 Target values.
 Type: double
 Dimension: vector  matrix
 options
 Type: struct

 criterion
 Function to measure quality of a split. 'mse' (default): mean squared error, 'friedman_mse': mean squared error with Friedman's improvement score for potential splits, 'mae': mean absolute error.
 Type: char
 Dimension: string
 splitter
 Strategy used to choose the split at each node. 'best' (default): chooses best split, 'random': chooses random split.
 Type: char
 Dimension: string
 max_depth
 The maximum depth of the tree. If not assigned, 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 * n_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
 random_state
 Controls the randomness of the model. At each split, features are randomly permuted. random_state is the seed used by the random number generator.
 Type: integer
 Dimension: scalar
 max_leaf_nodes
 Grow a tree with max_leaf_nodes in bestfirst fashion. Best nodes are defined by its reduction in impurity. If not assigned, then unlimited 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
Outputs
 parameters
 Contains all the values passed to dtrfit method as options. Additionally it has below keyvalue pairs.
 Type: struct

 scorer
 Function handle pointing to r2 function (R2 Coefficient of Determination).
 Type: function handle
 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 dtrfit with options
X = [1 2 3; 4 5 6; 7 8 9; 10 11 12; 13 14 15; 16 17 18; 19 20 21];
y = [1, 2, 3, 4, 5, 6, 7];
options = struct;
options.random_state = 3; options.criterion = 'mae';
parameters = dtrfit(X, y, options);
parameters = struct [
criterion: mae
min_impurity_decrease: 0
min_samples_leaf: 1
min_samples_split: 2
min_weight_fraction_leaf: 0
model_name: model_1635312674663063
n_features: 3
n_samples: 7
random_state: 3
scorer: @r2
splitter: best
]
Comments
It performs regression by constructing a Decision Tree. Once the tree construction is over, it can be used for prediction using dtrpredict method. Output 'parameters' can be passed to dtrpredict function.