This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.


Class: RegressionTree

Produce sequence of subtrees by pruning


tree1 = prune(tree)
tree1 = prune(tree,Name,Value)


tree1 = prune(tree) creates a copy of the regression tree tree with its optimal pruning sequence filled in.

tree1 = prune(tree,Name,Value) creates a pruned tree with additional options specified by one Name,Value pair argument. You can specify several name-value pair arguments in any order as Name1,Value1,…,NameN,ValueN.


  • tree1 = prune(tree) returns the decision tree tree1 that is the full, unpruned tree, but with optimal pruning information added. This is useful only if you created tree by pruning another tree, or by using fitrtree with pruning set 'off'. If you plan to prune a tree multiple times along the optimal pruning sequence, it is more efficient to create the optimal pruning sequence first.

Input Arguments


A regression tree created with fitrtree.

Name-Value Pair Arguments

Optional comma-separated pair of Name,Value arguments, where Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (''). You can specify only one name-value pair argument.


A numeric scalar from 0 (no pruning) to 1 (prune to one node). Prunes to minimize the sum of (Alpha times the number of leaf nodes) and a cost (mean squared error).


A numeric scalar from 0 (no pruning) to the largest pruning level of this tree max(tree.PruneList). prune returns the tree pruned to this level.


A numeric vector with elements from 1 to tree.NumNodes. Any tree branch nodes listed in Nodes become leaf nodes in tree1, unless their parent nodes are also pruned.

Output Arguments


A regression tree.


expand all

Load the carsmall data set. Consider Horsepower and Weight as predictor variables.

load carsmall;
X = [Weight Horsepower];
varNames = {'Weight' 'Horsepower'};

Grow a regression tree using the entire data set. View the tree.

Mdl = fitrtree(X,MPG,'PredictorNames',varNames)
Mdl = 

           PredictorNames: {'Weight'  'Horsepower'}
             ResponseName: 'Y'
    CategoricalPredictors: []
        ResponseTransform: 'none'
          NumObservations: 94

The regression tree has 16 pruning levels.

Prune the regression tree to pruning-level 10. View the pruned tree.

MdlPruned = prune(Mdl,'Level',10);

The pruned tree has six pruning levels.

Alternatively, you can use the pruning-level field in the Regression tree viewer to prune the tree.

See Also

Was this topic helpful?