Viewing a cross validated classification tree in the

K
Katie S · May 24, 2022 · 1.9K views
Question
Hi,   I am using the cross validation method 'crossval' as explained in the matlab help;   cvmodel = crossval(model) creates a partitioned model from model, a fitted classification tree. By default, crossval uses 10-fold cross validation on the training data to create cvmodel.   I have already produced the classification tree with M being a matrix of variables and A being a column vector of classification;   tree = ClassificationTree.fit(M, A); and can view this tree using 'view' view(tree,'mode','graph') Previously I had split matrix M into training and sample groups however now I would like to use the cross validation method 'crossval' to produce a more accurate accuracy prediction cvtree = crossval(tree); I can then use kfoldLoss and kfoldPredict to determine the effectiveness of the tree however I cannot determine how to 'view' the tree in any sense. I have attempted the following; view(cvtree) and view(cvtree,'mode','graph') however always get the same error;   *__view(cvtree) Error using classreg.learning.internal.DisallowVectorOps/throwNoCatError (line 57) Concatenation of classreg.learning.partition.ClassificationPartitionedModel objects is not allowed. Use a cell array to contain multiple objects.   Error in classreg.learning.internal.DisallowVectorOps/horzcat (line 48) function a = horzcat(this,varargin), throwNoCatError(this); end   Error in view (line 66) if(~all(isnumeric([viewArgs{:}])))_*   I was of the understanding that the crossval method produces 10 trees each with 90% of the data and tests these on the remaining 10% before selecting the tree which gives the greatest accuracy. Is this correct? and if so, why can I not view this resultant tree?   I really hope someone can help as I have been trawling the internet and matlab documentation for hours with no luck!
Expert Answer
Profile picture of John Michell
John Michell PhD Expert
Answered Aug 24, 2026

when you crossvalidate, the output is a ClassificationPartitionedModel, which means that it contains all the cross-validated trees and will use all of them to do prediction. All the individual trees can be accessed as follows:

 

 

>> cvtree.Trained
>> view(cvtree.Trained{1},'mode','graph')
>> view(cvtree.Trained{2},'mode','graph') % etc

All the individual losses (of course based on your loss function) can be accessed as below:

>> cvtree.kfoldLoss('mode','individual')

You can view and use an individual tree if you like. Use 'kfoldPredict' to predict from the entire crossvalidated model.

100% Run Guarantee 3-Hour Fast-Track Delivery

Need a Custom Version or Complete Simulation for This Problem?

Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.

Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!