Main Content


Compact regression tree



ctree = compact(tree) creates a compact version of regression tree tree.


collapse all

Compare the size of a full regression tree model to the compacted model.

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

load carsmall
X = [Acceleration Cylinders Displacement Horsepower Weight];

Grow a regression tree using the entire data set.

Mdl = fitrtree(X,MPG)
Mdl = 
             ResponseName: 'Y'
    CategoricalPredictors: []
        ResponseTransform: 'none'
          NumObservations: 94

Mdl is a RegressionTree model. It is a full model, that is, it stores information such as the predictor and response data fitrtree used in training. For a properties list of full regression tree models, see RegressionTree.

Create a compact version of the full regression tree—that is, one that contains enough information to make predictions only.

CMdl = compact(Mdl)
CMdl = 
             ResponseName: 'Y'
    CategoricalPredictors: []
        ResponseTransform: 'none'

CMdl is a CompactRegressionTree model. For a properties list of compact regression tree models, see CompactRegressionTree.

Inspect the amounts of memory that the full and compact regression trees consume.

mdlInfo = whos('Mdl');
cMdlInfo = whos('CMdl');
[mdlInfo.bytes cMdlInfo.bytes]
ans = 1×2

       12570        7067

ans = 0.5622

In this case, the compact regression tree model uses approximately half the memory that the full model uses.

Input Arguments

collapse all

Regression tree, specified as a RegressionTree object created by the fitrtree function.

Output Arguments

collapse all

Compact regression tree, returned as a CompactRegressionTree object. You can predict regressions using ctree exactly as you can using tree. However, because ctree does not contain training data, you cannot perform some actions, such as cross validation.

Extended Capabilities

Version History

Introduced in R2011a