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.


Display a full tree for the carsmall data, as well as the tree pruned to level 10:

load carsmall;
varnames = {'Weight' 'Horsepower'};
t1 = fitrtree([Weight Horsepower],MPG,...

t2 = prune(t1,'Level',10);

See Also

Was this topic helpful?