Main Content


Class: ClassificationTree

Produce sequence of classification subtrees by pruning


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


tree1 = prune(tree) creates a copy of the classification 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.

Input Arguments


A classification tree created with fitctree.

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.


A numeric scalar. prune prunes tree to the specified value of the pruning cost.


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 classification tree.


expand all

Construct and display a full classification tree for Fisher's iris data.

load fisheriris;
varnames = {'SL','SW','PL','PW'};
t1 = fitctree(meas,species,'MinParentSize',5,'PredictorNames',varnames);

Figure Classification tree viewer contains an axes and other objects of type uimenu, uicontrol. The axes contains 21 objects of type line, text.

Construct and display the next largest tree from the optimal pruning sequence.

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

Figure Classification tree viewer contains an axes and other objects of type uimenu, uicontrol. The axes contains 15 objects of type line, text.


  • 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 the fitctree function 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.

See Also