exprso (version 0.1.8)

plMonteCarlo: Monte Carlo Cross-Validation

Description

Perform Monte Carlo style cross-validation.

Usage

plMonteCarlo(array, B = 10, ctrlSS, ctrlFS, ctrlGS, save = FALSE)

Arguments

array

Specifies the ExprsArray object to undergo cross-validation.

B

A numeric scalar. The number of times to split the data.

ctrlSS

Arguments handled by ctrlSplitSet.

ctrlFS

A list of arguments handled by ctrlFeatureSelect.

ctrlGS

Arguments handled by ctrlGridSearch.

save

A logical scalar. Toggles whether to save randomly split training and validation sets.

Value

An ExprsPipeline-class object.

Details

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

Specifically, plMonteCarlo will call the provided split function (via ctrlSS) some B times, perform all feature selection tasks (listed via ctrlFS) on each split of the data, and execute the pl function (via ctrlGS) using the bootstrapped set.

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

When embedding another plMonteCarlo or plNested call within this function (i.e., via ctrlGS), outer-fold classifier performance will force 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
ss <- ctrlSplitSet(func = "splitStratify", percent.include = 67, colBy = NULL)
fs <- list(ctrlFeatureSelect(func = "fsStats", top = 0, how = "t.test"),
           ctrlFeatureSelect(func = "fsPrcomp", top = 50))
gs <- ctrlGridSearch(func = "plGrid", how = "buildSVM", top = c(2, 3, 4), fold = 10,
                     kernel = c("linear", "radial"), cost = 10^(-3:3), gamma = 10^(-3:3))
boot <- plMonteCarlo(array, B = 3, ctrlSS = ss, ctrlFS = fs, ctrlGS = gs)
# }

Run the code above in your browser using DataLab