balKfold.xvspec {MLInterfaces} | R Documentation

## generate a partition function for cross-validation, where the partitions are approximately balanced with respect to the distribution of a response variable

### Description

generate a partition function for cross-validation, where the partitions are approximately balanced with respect to the distribution of a response variable

### Usage

    balKfold.xvspec(K)

### Arguments

`K` | number of partitions to be computed

### Details

This function returns a closure. The symbol `K` is bound in the environment of the returned function.

### Value

A closure consisting of a function that can be used as a `partitionFunc` for passage in `xvalSpec`.

### Author(s)

VJ Carey <stvjc@channing.harvard.edu>

### Examples

    ## The function is currently defined as
    function (K)
    function(data, clab, iternum) {
        clabs <- data[[clab]]
        narr <- nrow(data)
        cnames <- unique(clabs)
        ilist <- list()
        for (i in 1:length(cnames)) ilist[[cnames[i]]] <- which(clabs ==
            cnames[i])
        clens <- lapply(ilist, length)
        nrep <- lapply(clens, function(x) ceiling(x/K))
        grpinds <- list()
        for (i in 1:length(nrep)) grpinds[[i]] <- rep(1:K, nrep[[i]])[1:clens[[i]]]
        (1:narr)[-which(unlist(grpinds) == iternum)]
      }
    # try it out
    library("MASS")
    data(crabs)
    p1c = balKfold.xvspec(5)
    inds = p1c( crabs, "sp", 3 )
    table(crabs$sp[inds] )
    inds2 = p1c( crabs, "sp", 4 )
    table(crabs$sp[inds2] )
    allc = 1:200
    # are test sets disjoint?
    intersect(setdiff(allc,inds), setdiff(allc,inds2))

[Package MLInterfaces version 1.60.1 Index]