Main Content

crossval

Cross validate ensemble

Syntax

cvens = crossval(ens)
cvens = crossval(ens,Name,Value)

Description

cvens = crossval(ens) creates a cross-validated ensemble from ens, a regression ensemble. Default is 10-fold cross validation.

cvens = crossval(ens,Name,Value) creates a cross-validated ensemble with additional options specified by one or more Name,Value pair arguments. You can specify several name-value pair arguments in any order as Name1,Value1,…,NameN,ValueN.

Input Arguments

ens

A regression ensemble created with fitrensemble.

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

cvpartition

A partition of class cvpartition. Sets the partition for cross validation.

Use no more than one of the name-value pairs cvpartition, holdout, kfold, and leaveout.

holdout

Holdout validation tests the specified fraction of the data, and uses the rest of the data for training. Specify a numeric scalar from 0 to 1. You can only use one of these four options at a time for creating a cross-validated tree: 'kfold', 'holdout', 'leaveout', or 'cvpartition'.

kfold

Number of folds for cross validation, a positive integer value greater than 1.

Use no more than one of the name-value pairs 'kfold', 'holdout', 'leaveout', or 'cvpartition'.

leaveout

If 'on', use leave-one-out cross-validation.

Use no more than one of the name-value pairs 'kfold', 'holdout', 'leaveout', or 'cvpartition'.

nprint

Printout frequency, a positive integer scalar. Use this parameter to observe the training of cross-validation folds.

Default: 'off', meaning no printout

Output Arguments

cvens

A cross-validated classification ensemble of class RegressionPartitionedEnsemble.

Examples

expand all

Create a cross-validated regression model for the carsmall data, and evaluate its quality using the kfoldLoss method.

Load the carsmall data set and select acceleration, displacement, horsepower, and vehicle weight as predictors.

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

Train a regression ensemble.

rens = fitrensemble(X,MPG);

Create a cross-validated ensemble from rens and find the cross-validation loss.

rng(10,'twister') % For reproducibility
cvens = crossval(rens);
L = kfoldLoss(cvens)
L = 30.3471

Alternatives

You can create a cross-validation ensemble directly from the data, instead of creating an ensemble followed by a cross-validation ensemble. To do so, include one of these five options in fitrensemble: 'crossval', 'kfold', 'holdout', 'leaveout', or 'cvpartition'.

Extended Capabilities