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

'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 = 29.9347

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'.