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 classification 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 classification ensemble created with fitcensemble.

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, or 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 numeric positive scalar 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 ClassificationPartitionedEnsemble.

Examples

expand all

Create a cross-validated classification model for the Fisher iris data, and assess its quality using the kfoldLoss method.

Load the Fisher iris data set.

load fisheriris

Train an ensemble of 100 boosted classification trees using AdaBoostM2.

t = templateTree('MaxNumSplits',1); % Weak learner template tree object
ens = fitcensemble(meas,species,'Method','AdaBoostM2','Learners',t);

Create a cross-validated ensemble from ens and find the classification error averaged over all folds.

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

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 fitcensemble: 'crossval', 'kfold', 'holdout', 'leaveout', or 'cvpartition'.

Extended Capabilities