exprso (version 0.1.7)

plNested: Nested Cross-Validation

Description

Perform nested cross-validation.

Usage

plNested(array, fold = 10, ctrlFS, ctrlGS, save = FALSE)

Arguments

array
Specifies the ExprsArray object to undergo cross-validation.
fold
A numeric scalar. Specifies the number of folds for cross-validation. Set fold = 0 to perform leave-one-out cross-validation.
ctrlFS
A list of arguments handled by ctrlFeatureSelect.
ctrlGS
Arguments handled by ctrlGridSearch.
save
A logical scalar. Toggles whether to save each fold.

Value

An ExprsPipeline-class object.

Details

Analogous to how plGrid manages multiple build and predict tasks, one can think of plNested as managing multiple pl tasks.

Specifically, plNested segregates the data into v-folds, treating each fold as a validation set and the subjects not in that fold as a training set. Then, some fold times, it performs all feature selection tasks (listed via ctrlFS) on each split of the data, and executes the pl function (via ctrlGS) using the training set.

To perform multiple feature selection tasks, supply a list of multiple ctrlFeatureSelect argument wrappers to ctrlFS. To reduce the results of plNested to a single performance metric, you can feed the returned ExprsPipeline object through the helper function calcNested.

When calculating classifier performance with calcStats, this function forces aucSkip = TRUE and plotSkip = TRUE.

See Also

fs build doMulti exprso-predict plCV plGrid plGridMulti plMonteCarlo plNested

Examples

Run this code
## Not run: 
# require(golubEsets)
# data(Golub_Merge)
# array <- arrayEset(Golub_Merge, colBy = "ALL.AML", include = list("ALL", "AML"))
# array <- modFilter(array, 20, 16000, 500, 5) # pre-filter Golub ala Deb 2003
# array <- modTransform(array) # lg transform
# array <- modNormalize(array, c(1, 2)) # normalize gene and subject vectors
# fs <- ctrlFeatureSelect(func = "fsEbayes", top = 0)
# gs <- ctrlGridSearch(func = "plGrid", how = "buildANN", top = c(10, 20, 30),
#                      size = 1:3, decay = c(0, .5, 1), fold = 0)
# nest <- plNested(arrays[[1]], fold = 10, ctrlFS = fs, ctrlGS = gs, save = FALSE)
# ## End(Not run)

Run the code above in your browser using DataCamp Workspace